我用一些特定的属性对 UITableView 进行了子类化,我希望能够在 UITableViewCell 的子类中访问这些属性。有没有像我刚刚丢失的 cell. containsTableView 的东西?
问问题
423 次
2 回答
4
真的,您不希望您的观点对他们的父母有太多了解。要做的事情是子类 UITableViewCell,给它一些属性来保存你想要传递给它的信息,然后让你的 UITableViewController 在 tableView:cellForRowAtIndexPath 中这样做:
于 2013-06-27T17:36:52.930 回答
1
你可能会想到使用
self.superview
但它非常脆弱,所以请不要!
您最好将引用UITableView
明确传递给单元格。
在您的单元格中声明一个属性
@property (nonatomic, weak) UITableView *parentTableView;
并在tableView:cellForRowAtIndexPath:
数据源方法中赋值。
最后,如果您的目的只是在父控制器上调用一些方法,您可以使用适当的委托模式并定义自己的协议
@protocol CellDelegate <NSObject>
- (void)aMethodThatINeedToCall:(id)whatever;
@end
声明一个委托属性
@property (nonatomic, weak) id<CellDelegate> delegate;
并让你UITableViewController
符合那个
@interface MyTableViewController : UITableViewController <CellDelegate>
...
@end
@implementation
...
- (void)aMethodThatINeedToCall:(id)whatever {
// do stuff
}
...
@end
于 2013-06-27T17:34:40.557 回答