2013-02-28 86 views
0

我想實現一個自定義UITableViewCell,我希望從單元格子類訪問父級tableView。我正在創建一個自定義的init方法,允許我指定tableview,但遇到了一個錯誤。UITableViewCell _tableView屬性?

我試過聲明一個iVar __weak UITableView *_tableView;但是,我被給出了一個錯誤,指出它是一個重複的聲明。我看着UITableViewCell頭文件,果然,有一個

@private 
    UITableView *_tableView; 

這是偉大的,因爲我相信,iOS將我來設置該聲明,但我想知道如果我允許使用這個,或者這是否會讓我的應用程序被拒絕。沒有關於這方面的文件,我還沒有發現任何在線任何地方的提及。

任何想法?

回答

0

你是對的,不要試圖訪問私人伊娃。我建議沒有打擾在上海華通,要麼,但只使用什麼是可用的表盒,發現其封閉tableView

的UIView + mytable.h:

#import <UIKit/UIKit.h> 

@interface UIView (mytable) 

- (UITableView *)mySuperTableView; 

@end 

的UIView + mytable.m :

#import "UIView+dsltable.h" 

@implementation UIView (dsltable) 

- (UITableView *)mySuperTableView 
{ 
    if ([self isKindOfClass: [UITableView class]]) 
     return (UITableView *)self; 
    return [self.superview mySuperTableView]; 
} 

@end 
+0

Oo我喜歡這種方法!非常好:) – PaReeOhNos 2013-02-28 03:52:02

+0

順便說一句,感謝Objective-C如何處理消息傳遞零,這將返回沒有修改tableview之外的零。 :) – 2013-02-28 03:56:08

+0

啊優秀的東西!肯定會採取這種做法,然後,歡呼:) – PaReeOhNos 2013-02-28 03:59:02

0

不,您不能訪問無證私人ivar。您可能需要添加不同名稱的ivar,或者通過獲取單元格的超視圖來獲取表格視圖。

+0

哈耶我意識到我無法訪問它,就像我貼:P我只是好奇,雖然 – PaReeOhNos 2013-02-28 03:51:34

相關問題