0

edit buttonで取得した があり、それself.editButtonItemを に設定したのでself.navigationItem.leftBarButtonItem、それを押すとUITableViewが編集を開始し、 に変わり"Done" buttonます。もう一度押すと、ビューは編集を停止し、ボタンは通常の状態に戻ります。また、編集ボタンが押されたときに別のアクションがリンクされ"add" buttonた に変わりたいと思います。"Clear" buttoniPhone "Phone" app's favourites tab,編集ボタンを押すとプラスボタンがクリアボタンに変わるのと同じように)。

edit actionこの方法で と スタイルなどを取得したいのですself.editButtonItemが ( )、 にリンクされた追加のセレクターも必要edit buttonです。

これを行うにはどうすればよいですか?のカテゴリを作成しようとしましたがUIBarButtonItem、どうすればよいかわかりません。

ありがとう。

4

3 に答える 3

1

タイトルを変更できるボタンを作成するには、次の操作を実行できます。

ボタンの ivar を定義します。

UIBarButtonItem *_btnAddClear;

viewDidLoad

_btnAddClear = [[UIBarButtonItem alloc] initWithTitle:@"Add" style:UIBarButtonItemStyleBordered target:self action:@selector(addClearAction:)];
_btnAddClear.possibleTitles = [NSSet setWithObjects:@"Add", @"Clear", nil];

[編集/完了] ボタンがタップされたときにこのボタンのタイトルを変更したいので、次のようなコードを追加できます。

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

    _btnAddClear.title = editing ? @"Clear" : @"All";
}

そして最後に、ボタン ハンドラー:

- (void)addClearAction:(UIBarButtonItem *)button {
    if (self.editing) {
        // perform "clear" action
    } else {
        // perform "add" action
    }
}
于 2013-02-23T14:58:00.293 に答える
0

editButtonItem に新しいアクションは必要ありません。

UIViewController が編集状態にあるかどうかを追跡するプロパティがあります。

@property(nonatomic, getter=isEditing) BOOL editing

必要なことを行うために、UITableViewController に次のメソッドを実装できます。

- (void)setEditing:(BOOL)editing animated:(BOOL)animated {
    [super setEditing:editing animated:animated]        
    //Do your thing
}
于 2013-02-23T14:57:02.347 に答える
0

UIBarButtonそんな101のタグをつけて・・・

そしてBarButtonメソッドで次のように書きます

-(void)barButtonMethod
{
    UIBarButtonItem * myButton = (UIBarButtonItem *) sender;

    if(sender.tag == 101)
    {
         yourBtn.tag = 102;

         // Write Your first action method such like

         [self ActionMethod1];
    }
    else
    {
         yourBtn.tag = 101; 

        // Write Your second action method such like

         [self ActionMethod2]; 
     }
}
于 2013-02-23T14:55:08.517 に答える