我有一个标签视图,为每个标签加载一个表格视图
第一个选项卡界面声明UITableView*tableView; 第二个选项卡界面声明UITableView*favTableView;
当声明第二个表的行数时,这有效:
- (NSInteger)tableView:(UITableView *)favTableView numberOfRowsInSection:(NSInteger)section {
return [favList count];
}
Run Code Online (Sandbox Code Playgroud)
但是,如果我将其更改为:
- (NSInteger)favTableView:(UITableView *)favTableView numberOfRowsInSection:(NSInteger)section {
return [favList count];
}
Run Code Online (Sandbox Code Playgroud)
当我尝试加载第二个标签时,应用程序崩溃了
是我的错误(a)不理解哪个是变量/保留字,(b)给每个表一个唯一的标识符,即favTableView,而不是重用tableView.
第二个表也没有标题栏
您必须实现的委托方法是
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
Run Code Online (Sandbox Code Playgroud)
在这个方法原型中,tableView:(注意冒号)是一个你无法改变的固定名称.第二个实例tableView只是一个在方法中有意义的局部变量名.以下也是有效的:
-(NSInteger)tableView:(UITableView *)tv numberOfRowsInSection:(NSInteger)section
Run Code Online (Sandbox Code Playgroud)
委托方法名称就是它们的名称.您无法决定是否希望委托方法名称成为其他名称,或者UITableView在需要来自其委托的信息时如何知道要调用哪些方法?
因此,对于您的表favTableView,如果您将实现上述委托方法的对象指定为favTableView的委托,那么在调用时,本地变量tv实际上将与之相同favTableView.
我可以看到你对此感到困惑的地方.SDK使用'tableView'来处理很多事情:方法原型占位符名称,变量名称以及谁知道还有什么.归结为能够阅读和理解Objective-C方法签名.:-)这有点奇怪,直到你习惯它.
| 归档时间: |
|
| 查看次数: |
792 次 |
| 最近记录: |