私のiPhoneアプリの一部には、UITableView
グループ化された形式で3つの静的セクションが表示されます。ただし、場合によっては(ユーザー入力に基づいて)、ViewControllerがテーブルを表示するときにこれらのセクションの最後が表示されないことが最も適切です。
コントローラのviewDidLoad
メソッドに、条件付きで実行される次のコード行を追加しました。
if ([self.formula containsElementWithoutStableIsotopes]) {
NSLog(@"Deleting section 2 ...");
NSUInteger sectionToDelete = 2;
[self.tableView deleteSections:[NSIndexSet indexSetWithIndex:sectionToDelete]
withRowAnimation:UITableViewRowAnimationAutomatic];
}
「セクション2を削除しています...」がコンソールに記録されているので、このコードが実行されていることはわかりますが、テーブルは影響を受けていないようです。3つのセクションはすべて通常どおり表示されます。
理想的なケースでは、テーブルビューが表示される前に、セクション2を削除することをお勧めしますが、表示されたときにセクション2を削除しても問題ありません。ただし、代わりに上記のコードをメソッド内に配置すると、削除の前後のセクションの数が一致しないためviewDidAppear
、プログラムによってが発生します。NSInternalInconsistencyException
このトピックについてご協力いただければ幸いです。