1つのタブにUINavigationControllerがあり、ルートビューコントローラーが割り当てられています。ルートビューコントローラーは、より多くの選択肢にドリルダウンするUITableViewで構成されています。ルートビューコントローラーでアイテムを選択すると、別のuitableviewが表示され、以下を使用して、 cellForRowAtIndexPathの次のコードを使用して、そのセクションまたはグループに 1つのチェックマークのみを割り当てます。
if([self.checkedIndexPath isEqual:indexPath])
{
cell.accessoryType = UITableViewCellAccessoryCheckmark;
}
else
{
cell.accessoryType = UITableViewCellAccessoryNone;
}
およびdidSelectRowAtIndexPathの次のとおりです。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
// Uncheck the previous checked row
if(self.checkedIndexPath)
{
UITableViewCell* uncheckCell = [tableView
cellForRowAtIndexPath:self.checkedIndexPath];
uncheckCell.accessoryType = UITableViewCellAccessoryNone;
}
UITableViewCell* cell = [tableView cellForRowAtIndexPath:indexPath];
cell.accessoryType = UITableViewCellAccessoryCheckmark;
self.checkedIndexPath = indexPath;
[tableView deselectRowAtIndexPath:indexPath animated:YES];
}
私の問題は、ナビゲーションメニューの[戻る]ボタンを使用して同じUItableviewに戻ると、チェックマークが消えることです。ただし、そのビューで上下にスクロールすると、これは当てはまりません。ナビゲーションコントローラーを使用して前後に移動するときに、これらのチェックマークをそこに保持するにはどうすればよいですか。