2011-12-19 13 views
2
私はカスタムの編集ボタン項目を作成するには、次のコードを使用してい

に使用するセレクター:カスタムeditButtonItem - 完了状態

UIButton *editButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
    [editButton addTarget:self action:@selector(startEditing) forControlEvents:UIControlEventTouchUpInside]; 
    [editButton setTitle:@"Filters" forState:UIControlStateNormal]; 
    editButton.frame = CGRectMake(editButton.frame.origin.x, editButton.frame.origin.y, 60.0, 30.0); 
    [editButton setBackgroundImage:[UIImage imageNamed:@"contact_btn_bg.png"] forState:UIControlStateNormal]; 
    [editButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; 
    [editButton.titleLabel setFont:[UIFont boldSystemFontOfSize:12.0f]]; 

    UIBarButtonItem *cEditButtonItem = [[UIBarButtonItem alloc] initWithCustomView:editButton]; 

    self.navigationItem.rightBarButtonItem = cEditButtonItem; 
    [editButton release]; 

しかし、私は「完了」状態をカスタマイズする方法を確認していません。もちろん、私はif/thenスイッチを使って新しい(void)finishEditingプロシージャを呼び出すことができますが、何が終了したprocを編集する必要があるのか​​分かりません。私が必要なときに、通常の状態のボタンを切り替える。

(void)startEditingは、次のようになります。

- (void)startEditing { 
    [self setEditing:YES animated:YES]; 
} 

答えて

3

は、ここで私は自分のアプリケーションでこれを処理する方法です。

まず、2つのUIBarButtonItemのクラスに2つのプロパティを作成します。

@property (nonatomic, retain) UIBarButtonItem *editButton; 
@property (nonatomic, retain) UIBarButtonItem *doneButton; 

合成されていることを確認し、-viewDidLoadに適切なターゲット/アクションを設定してください。今すぐUIBarButtonItemを返すメソッドを作成します。

- (UIBarButtonItem *)leftBarButtonItem 
{ 
    if (self.tableView.editing) 
     return self.doneButton; 

    return self.editButton; 
} 

は今、あなたはあなたの編集と完了ボタンに割り当てられてきた方法で、あなただけの私たちが作成したメソッドにUINavigationItemで適切なボタンを設定する必要があります。

[self.navigationItem setLeftBarButtonItem:self.leftBarButtonItem animated:YES]; 
+0

完璧な...私は、異なる状態に対して異なる 'UIBarButtonItems'を設定する「進むべき道」このことについて考えていたが、これはだったかどうかわかりませんでした。私は 'UIControlState'機能を使用しようとしなければならないのかどうかは分かりませんでしたが、バーボタンの項目にはこれがないので、これが最良の選択肢のようです。 –

+0

あなたは ' - (UIBarButtonItem *)leftBarButtonItem {...}'を意味すると思います。 –

+0

それを指摘してくれてありがとう。修正されました。 –

関連する問題