所以我得到它通常不贊成修改的cellForRowAtIndexPath外的小區,但這裏是我:修改靜態細胞外的cellForRowAtIndexPath而無需創建新的細胞
我有一個作爲索引靜態表的問題(1-33)。每一行都有一個問題和一個詳細的披露指標。所有這些都是手動輸入到平板上。
我有一個文件,列出每個問題和一些屬性,如問題已被回答。
當這個屏幕加載(viewDidAppear)我想檢查是否每個這些問題都已經加載,如果是的話,將細節指標切換到複選標記。
現在這適用於前5個細胞。如果我回答問題並回來,那麼會檢查更多單元格(即使這些問題尚未得到解答)。這是未定義的行爲,因爲我在cellForRowAtIndexPath之外訪問它嗎?
這裏是我用來訪問和更改單元格中的代碼:
-(void) viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
if (question1Answered)
{
UITableViewCell *cell1 = [self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:3]];
[cell1 setAccessoryType:UITableViewCellAccessoryCheckmark];
}
}
再次,它的工作的第5個元素,那麼剩下的就不會不管我做什麼改變。然後,如果我去問一個問題,並返回它顯示更多的選擇。奇怪的行爲...
編輯:我只注意到上述代碼的作品,但它只更新當前在屏幕上的單元格。所以如果我向下滾動,離開並回來,所有可見的單元格都會有複選標記。是否有強制刷新所有單元格的方法,即使它們不可見?
感謝您的任何和所有幫助...
-David