2010-12-14 6 views
7

テーブルビューが編集状態になると検出するための通知またはデリゲートメソッドはありますか?UITableViewイベントの編集/完了

私がやりたいことは、テーブルが編集中であることを検出し、「新しい項目を追加する」というような追加の行を表示することです。

View Controllerがロードされた後、[tableView isEditing]がtrueであるかどうかに応じて、配列の最後に「Add New Item」行を追加しようとしましたが、[array count]編集中)または[配列数] - 1(私が編集していないとき)。

アイデア? Appleがテーブル内のアイテムを編集して削除を許可する方法は?

答えて

6

見つかりました。このメソッドをオーバーライドします。

- (void)setEditing:(BOOL)editing animated:(BOOL)animated{ 
    [super setEditing:editing animated:animated]; 

    // do something 
} 
3

あなたができることは、editButtonにセレクタとしてIBActionを追加することです。 editButtonをタップすると、そのメソッドが呼び出されます。例:あなたがあなた自身のUIButtonを持っており、標準self.editButtonItemを使用しなかった場合

-(void)viewDidLoad 
{ 
// ... 
[self.editButtonItem setAction:@selector(editAction:)]; 
[self.navigationItem setRightBarButtonItem: self.editButtonItem]; 

// .. your code 

} 

-(IBAction)editAction:(id)sender 
{ 
    UIBarButtonItem * button = ((UIBarButtonItem*)sender); 

    if (!self.tableView.editing) 
    { 
     [self.tableView setEditing:YES animated:YES]; 
     [button setTitle:@"Done"]; 
     // do your stuff... 
    } 
    else 
    { 
     [button setTitle:@"Edit"]; 
     [self.tableView setEditing:NO animated:YES]; 
     // do your stuff... 
    } 
} 

その後、使用 [yourButton addTarget:自己アクション:@selector(editAction :) forControlEvents:UIControlEventTouchUpInside]; そしてeditActionのUIButton *として扱います:メソッド

関連する問題