也許這是一個類似的開始,但這是事實。reloadData不會調用cellforrowatindexpath
首先抱歉,如果這是格式不正確,第一次這樣做。我一直在使用stackoverflow來查找很長一段時間的幫助,這非常有幫助(謝謝大家),但這是我第一次發佈自己的問題。這個問題已經被問過很多次了,但是當我調用[self.tableView reloadTable]時,方法numberOfSectionsInTableView和numberOfRowsInSection被調用,但不是cellForRowAtIndexPath。
每一個答案,當搜索一直是一個變化我看到:
- 的是的tableView
nil
numberOfRowsInSection
是0- 的tableView的委託/數據源未設置。這些都不是我的情況,所以我想知道還有什麼可能是錯的。
但我不確定4.在錯誤的uiTableView上調用reloadTable。或者它是關於其他一些錯誤的。
現在我的APP是類似於TableView.also 的Dropbox, 第一,當我們登錄到它,我們得到一個文件列表(包括目錄),我說在視圖的底部工具欄由[self.navigationController.view addSubview:toolBar]
,當我觸摸按鈕項「刷新」時,它調用[self.tableView reloadData]
並且運行良好。
其次,當我們選擇一個目錄,我們將得到一個新的文件目錄表是由pushViewController
self.navigationController
,但是這一次,當我們觸摸「刷新」,語句[self.tableView reloadData]調用numberOfSections,numberOfRows,不是的cellForRowAtIndexPath
關於爲什麼cellForRow不會被第二次調用的任何想法?提前致謝。
FileListViewController.h
@interface FileListViewController : UITableViewController <UITableViewDelegate, UITableViewDataSource>
FileListViewController.m
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if (isDir) {
FileListViewController *fileListViewController = [[FileListViewController alloc] init];
[self.navigationController pushViewController:fileListViewController animated:YES];
}
}
- (void)refresh
{
[Utilities refresh];//Utilities is my custom class.
[self viewDidLoad];
[self.tableView reloadData];
}
我的表視圖部分和行的迴歸數不爲0
當我加入NSLog(@"Calling reloadData on %@", self.tableView);
到「刷新」:
- (void)refresh
{
[Utilities refresh];//Utilities is my custom class.
[self viewDidLoad];
NSLog(@"Calling reloadData on %@", self.tableView);
[self.tableView reloadData];
}
然後返回上調用reloadData; contentOffset:{0,0}>。委託:FileListViewController,DataSource:FileListViewController
感謝您的建議。我刪除了[self viewDidLoad],我同意你的看法。但現在問題仍然存在,當我觸摸目錄下的「刷新」按鈕時,[self.tableView reloadData]不會調用cellForRowAtIndexPath。是因爲我分配一個新的tableView FileListViewController * fileListViewController = [[FileListViewController alloc] init]? – Philip
可能你沒有正確連接新的tableView(數據源和委託)或手動alloc/init新的tableView,並將其分配給稍後/早期從xib啓動的屬性。 –