dub*_*eat 12 iphone delegates objective-c uitableview ios
我正在尝试使用UITableView
不使用笔尖而不使用笔尖UITableViewController
.
我UITableView
在UIViewController
Like 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 次 |
最近记录: |