2012-07-06 51 views
2

我希望有人可以幫助...更新部分的靜態UITableView

我已經設置了一個靜態UITableView控制器四節。前兩個部分用於輸入數據。第三部分有一個單元幷包含一個保存按鈕。

最後一節有6個,我希望能夠以填充這些六個單元格的數據,從前兩節,反正從長遠來看...

於是,我就一個小例子,但它不起作用。控制檯返回以下錯誤:

UITableView dataSource must return a cell from tableView:cellForRowAtIndexPath:' * First throw call stack:

下面是一個例子:

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *CellIdentifier = @"Cell"; 

    NSIndexPath *EditRow = [NSIndexPath indexPathForRow:1 inSection:4]; 
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:EditRow]; 

    NSString *test = @"Test"; 
    cell.textLabel.text = test; 

    NSLog(@"Index Path: %d", indexPath.row); 
    NSLog(@"Cell ID:, %@", CellIdentifier); 

    return cell; 
} 

所以我的問題歸結爲..如何更新特定部分的特定細胞?

感謝

回答

4

當我實現靜態細胞,我刪除cellForRowAtIndexPathnumberOfSectionsInTableView,並從通用UIViewController存根Xcode中產生numberOfRowsInSection方法;這些似乎只有在處理動態單元時纔是必需的。然後,通過控制拖動故事板,爲需要以編程方式設置的單元格中的所有UI元素創建命名插口;然後,在我的情況下,這些通常是UILabel s。在控制器的viewDidLoad方法,我設置這些網點的適當的初始值,例如:

self.nameLabel.text = self.dataSource.name; 

一旦你得到了這個有線了,你可以隨意更改的任何值。

我希望這對你有用。我很樂意向那些有更好的(更合適的)方法的人學習。

+0

你的方法是正確的方法。使用靜態單元格時,表格由數據源方法的基礎實現(即,在UITableViewController中的那些)創建,因此除非知道自己在做什麼,否則覆蓋它們是非常棘手的。在可編輯內容的靜態單元格和動態表格之間有一條細線,而網點則是要走的路。 – jrturton 2012-07-07 17:23:52

+0

...除了在調用_after_ [super viewWillAppear:]之前,插座未連接。 viewDidLoad不是設置標籤文本等的好地方。 – jrturton 2012-07-07 17:25:16

+0

好的。我不知道。感謝您的建議。 – 2012-07-07 18:38:42

1

直接讓 - [UITableView的(無效)reloadRowsAtIndexPaths:(NSArray的*)indexPaths withRowAnimation:(UITableViewRowAnimation)動畫],那麼你的數據源將被調用適當的索引路徑。

+0

你好,謝謝你回到我身邊。你有沒有這樣的例子? – Strikeforce 2012-07-06 16:55:21