【发布时间】:2011-02-07 23:07:19
【问题描述】:
今天我的问题是关于 UITableViewController-s 特别是我注意到数据源委托方法
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView;
被调用了两次(即使我只是创建了一个基于导航的应用程序并且没有添加一行代码......以及添加一个 NSLog 来跟踪它)。 现在,由于在我的应用程序中,我需要根据文件系统中的文档来确定节的数量,因此我需要调用一些方法来做到这一点。我已经把这些方法放在了上面提到的方法中,所以它们会被调用两次,这是我不需要的。 问题是为什么要调用两次,我可以调用一次吗? 我希望在官方文档中没有明确说明(这意味着我根本没有阅读它:))。顺便说一句,我可以看到其他人发布类似的问题,但我找不到完全令人满意的答案。 谢谢。
【问题讨论】:
-
仅 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView;方法被调用两次或uitableview的所有委托方法被调用两次?如果所有都被调用了两次,这意味着你的表正在重新加载两次......正在调用 uitableview 的“重新加载”方法吗?
-
您好 Reena,感谢您的关注。只有 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView;被调用两次。所有其他数据源委托方法的调用次数与您预期的一样多。例如 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 被称为 n = (可见单元格数) 并且它被限制为 (节数 x 每节的行数),每次你滚动并看到一些新的单元格,它被称为。唯一明显莫名其妙的双重调用是对于节数方法...
-
你能发布 numberOfSectionsInTableView 方法的代码吗?
-
嗯...当然,但我可以告诉你,只有语句:一个 NSLog 语句和'return 3;' (无论数量,相同的行为)。与此同时,我发现问题只存在于 UITableViewController,当仅使用 UITableView 时,该方法只会按预期调用一次。
-
你有没有发现这是为什么?也发生在我身上。完全一样……
标签: objective-c iphone uitableview delegates call