首先抱歉,如果格式不正確,首次執行此操作。我一直在使用stackoverflow來查找很長一段時間的幫助,這非常有幫助(謝謝大家),但這是我第一次發佈自己的問題。這個問題已被多次詢問,但是當我調用[myTable reloadTable]時,調用numberOfSectionsInTableView和numberOfRowsInSection方法,但不調用cellForRowAtIndexPath。reloadData calls numberOfSections,numberOfRows,not cellForRowAtIndexPath
每一個答案,當搜索一直是一個變化我看到: 1)的tableView爲零 2)numberOfRowsInSection是0 3)的tableView的委託/數據源未設置 4)調用reloadTable在錯誤的UITableView 。
這些都不是我的情況,所以我想知道還有什麼可能是錯的。
我在做什麼: 我有一個自定義的uitableviewcell和一個按鈕,當按下按鈕時我想改變單元格的屬性(例如,讓我們只是說我想改變單元格標題爲「按下按鈕」)。然後我想暫停一下,然後刪除單元格。
不知道這是否重要,但我的tableView是在UIViewController中,而viewController是委託和數據源。
我有一個方法(下),當按下按鈕時會觸發,並且單元屬性根據需要進行更改,但是當我嘗試刷新表以顯示更改時,它不起作用。第一次調用[remTable reloadData]時,調用numberofsectionsintableview和numberofrowsinsection而不是cellforrowatindexpath。但是,第二次[remTable reloadData]被調用時,所有三個方法都被調用,並且所有的方法都能正常工作。
[email protected]"BUTTON PRESSED";
[remTable reloadData];
NSLog(@"sleep");
sleep(1);
[remList removeObject:doneReminder];
[remTable reloadData];
爲了測試這一點,我把的NSLog語句在numberofsections,numberofrows和cellforrow開始時,輸出是方法,接着是編號的名稱(numberofsections/numberofrows)。
輸出:
numberofsections 1
numberofrows 3
sleep
numberofsections 1
numberofrows 2
cellforrow
任何想法,爲什麼cellforrow不是被稱爲第一次?在此先感謝,請讓我知道是否還有其他事情可以補充說明。
我很確定這是正確的答案。 – 2012-02-16 03:36:41
非常感謝你的詳細解釋,這正是發生了什麼,你的建議完美地解決了它。再次感謝您的及時,明確的迴應,不能要求更好的答案。 – jasonm 2012-02-16 03:43:51