NSMutableArray *objects
テーブルビューセルのコンテンツを表示するために使用するいくつかのオブジェクトを保持します。が 0 の場合、次の場合objects.count
にテーブル ビューの編集モードを有効にしたいと思いますviewDidLoad
。
- (void)viewDidLoad {
// If there is no content to present enable editing mode
if (self.objects.count == 0) [self setEditing:YES animated:YES];
}
これはself.editButtonItem
、新しい行を切り替えて、テーブル ビューに挿入します (「ここをタップして新しい要素を追加します」と表示されます)。
- (void)setEditing:(BOOL)editing animated:(BOOL)animated {
[super setEditing:editing animated:animated];
[self.tableView setEditing:editing animated:animated];
if (self.editing) {
[self.tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:[NSIndexPath indexPathForRow:[self.objects count] inSection:0]]
withRowAnimation:UITableViewRowAnimationAutomatic];
}
else {
[self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:[NSIndexPath indexPathForRow:[self.objects count] inSection:0]]
withRowAnimation:UITableViewRowAnimationAutomatic];
}
}
残念ながら、このセットアップではクラッシュが発生します。
*** Assertion failure in -[UITableView _endCellAnimationsWithContext:], /SourceCache/UIKit/UIKit-1914.85/UITableView.m:833
プログラムで編集モードを切り替えることはできませんか? ユーザーが触れると、self.editButtonItem
すべて正常に動作します。私の知る限り、この editButton は で行っているのと同じことを行いviewDidLoad
ます。
私は何を間違っていますか?