【发布时间】:2010-08-12 18:41:30
【问题描述】:
我有 splitViewController,它有一些 viewController 作为 MasterViewController 和一些 tableViewController 作为 DetailViewController。当我按下 masterViewController 上的按钮时,我想在 detailViewController 中显示新的 tableViewController 而不是现有的。
所以我这样做了:
SearchDetailViewController *searchDetailViewController = [[SearchDetailViewController alloc] initWithStyle:UITableViewStylePlain];
UINavigationController *searchDetailNavigationController = [[UINavigationController alloc] initWithRootViewController:searchDetailViewController];
之后我传递数据以显示在新的 tableController 中:
[searchDetailViewController passInSearchResults:listOfItems];
之后我将新控制器“推送”到 splitViewController:
[searchSplitViewController setViewControllers:[NSArray arrayWithObjects:self.navigationController, searchDetailNavigationController, nil]];
在目标tableViewController 方法“passInSearchResults”中传递了数据,我也调用了reloadData。方法如下:
- (void)passInSearchResults:(NSMutableDictionary *)searchResults {
self.searchResultList = searchResults;
NSLog(@"Data is passed in: %@",self.searchResultList);
[self.tableView reloadData];
//[self.tableView setNeedsDisplay];
}
控制台:数据传入:[这里我得到了我想要的确切数据,而且看起来恰到好处]。
After this I see that method "numberOfRowsInSection" is fired:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
NSLog(@"Setting table length: %i",[self.searchResultList count]);
return [self.searchResultList count];
}
控制台:设置表格长度:[这里我得到正确的长度]
问题是表格没有被传递的数据填充并且方法“cellForRowAtIndexPath”没有被调用。
怎么可能在 reloadData 方法“numberOfRowsInSection”被触发,但没有方法“cellForRowAtIndexPath”...... ???
谢谢
【问题讨论】:
标签: iphone uitableview reloaddata