开发者

UITableView superClass for delegate?

A quick question, I am setting a delegate for UITableView and I have a question regarding setting the delegate and dataSource properties. I have noticed that the properties for delegate and dataSource are not available, I was thinking that adopting the protocols would make them available. But I am now thinking that I maybe have the superclass for my delegate class wrong.

Currently I have:

-(void)viewDidLoad {
    TestDelegate *tempDelegate = [[TestDelegate alloc] init];
    [self setMyDelegate:tempDelegate];
    // setDelegate
    // setDataSource
    [tempDelegate release];
    [super viewDidLoad];
}

My interface for TestDelegate looks like:

@interface TestDelegate 开发者_如何转开发: NSObject <UITableViewDelegate, UITableViewDataSource> {
    NSArray *listData;
    int myCounter;
}

Can I ask if the above should be:

@interface TestDelegate : UITableView <UITableViewDelegate, UITableViewDataSource> {
    NSArray *listData;
    int myCounter;
}

gary

EDIT: I think it might be on the right track: my delegate superClass should be NSObject, I also have a UITableView in Interface Builder.

I have added @property(nonatomic, retain)IBOutlet UITableView *myTableView; in Xcode and connected this to my UITableView in IB. I can now access the delegate and dataSource properties in Xcode via the IBOutlet.


No, there is a difference between subclassing UITableView and merely conforming to the UITableViewDelegate or UITableViewDatasource protocols.

You would want to subclass UITableView if you needed different behavior in the table view itself. -> Most of the time you will not want to do this.

UITableView has a delegate and dataSource property, you can assign it to an object that conforms to the respective protocol.

If you want to have top-level access to the delegate and dataSource properties, you need to subclass UITableViewController. (do not conform to the delegate protocols if you subclass UITableViewController)

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜