dub*_*eat 12 iphone delegates objective-c uitableview ios
我正在尝试使用UITableView不使用笔尖而不使用笔尖UITableViewController.
我UITableView在UIViewControllerLike So中添加了一个实例
mytable = [[UITableView alloc] initWithFrame:CGRectMake(22, 207, 270, 233)];
[mytable setDelegate:self];
[self.view mytable];
Run Code Online (Sandbox Code Playgroud)
另外我已经将以下表格视图方法添加到我的UIViewController(为了简洁而剪切)
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
Run Code Online (Sandbox Code Playgroud)
我收到一条警告,说我UIViewController没有实施UITableView委托协议.
什么是告诉表视图其委托方法的正确方法?
(这是我尝试使用a UITableView而不UITableTableview从新文件选项中选择控制器的第一次尝试)
Jac*_*kin 29
您需要符合你的类的UITableViewDelegate和UITableViewDataSource协议.(cellForRowAtIndexPath:在UITableViewDataSource协议中)
通过在类接口定义中使用尖括号来执行此操作:
@interface myViewController : UIViewController <UITableViewDelegate, UITableViewDataSource> {...}
Run Code Online (Sandbox Code Playgroud)
你现在而不是在使用a之前得到这个警告的原因UITableViewController是因为UITableViewController已经符合这些协议.
所以,实质上a UITableViewController只是一个符合UITableViewDelegate和UITableViewDataSource,并且具有UITableView实例成员的类.这就是它.
当然,如果你还没有继承UITableViewController,那么你需要手动设置的dataSource和delegate的UITableView:
[tableView setDelegate:self];
[tableView setDataSource:self];
Run Code Online (Sandbox Code Playgroud)
ma1*_*w28 16
您还必须将dataSource委托设置为self:
[tableView setDelegate:self];
[tableView setDataSource:self];
Run Code Online (Sandbox Code Playgroud)
或者,同样地:
tableview.delegate = self;
tableview.dataSource = self;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
41452 次 |
| 最近记录: |