0

我用一些特定的属性对 UITableView 进行了子类化,我希望能够在 UITableViewCell 的子类中访问这些属性。有没有像我刚刚丢失的 cell. containsTableView 的东西?

4

2 回答 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 回答