在我的'分區'UITableView
中,我有兩個部分,第一個用於屬性(如名稱),第二個用於編輯可添加對象的部分。 下面是它的照片:根據變量更改某一節中的行數
有一個屬性,用戶可以改變(在這種情況下類型),這將改變在第二部分中的行的數目。更具體地說,如果選擇一個屬性,則最大行數爲2,然後將不存在添加新...行。
下面是我試了一下(在我的UITableViewController)...
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
if ([self isToManyRelationshipSection:section]) {
NSArray *sectionKeys = [rowKeys objectAtIndex:section];
NSString *row0Key = [sectionKeys objectAtIndex:0];
if ([[NSString stringWithFormat:@"%@", [managedObject valueForKey:@"type"]]
isEqualToString:[NSString stringWithFormat:@"One on One"]] && [[managedObject valueForKey:row0Key] count] == 2){
return [[managedObject valueForKey:row0Key] count];
}
return [[managedObject valueForKey:row0Key] count] +1;
}
return [rowLabels countOfNestedArray:section];
}
但是,如果用戶試圖在已經有2行中的應用程序崩潰刪除行,因爲將有相同數量的行在刪除之前和之後。
如何解決此問題並正確執行此操作?
的問題是,我也檢查,如果中行的節數爲2,所以後來我返回對象的實際數量,否則我返回添加對象爲Add New ...行。這就是我得到這個錯誤的原因,因爲一旦該行被刪除,計數小於2,那麼它就會返回一行。這意味着前後有2行。 – Joshua 2010-08-11 16:29:29
我會保持用戶界面和它背後的邏輯分離。您正在查看用戶界面的當前狀態,以確定您的遊戲處於何種狀態,更糟糕的是,您在更新時更新它,可以這麼說。你應該這樣做 - 對於每一個用戶動作,你都會更新一組代表你的遊戲狀態的變量。之後,你根據(僅限!!)更新你的界面到更新的遊戲狀態...... – Toastor 2010-08-11 16:57:36
不,我明白了,並創建了像你所說的整數,這取決於遊戲模式。 **我的問題是在**部分中有2行時隱藏「添加新行......」行,就像我在第一條評論中所解釋的那樣。 – Joshua 2010-08-11 17:02:23