0

ナビゲーション バーにナビゲーション バー アイテムを追加および削除しようとすると、一部のバー アイテムが表示されなくなります。

以下のコードを viewDidLoad で実行すると、正常に動作します。

-(void) resetNavigationBarRearrangeMode {

    NSArray*rightBarItems = [[NSArray alloc] initWithObjects:actionCancel, actionSave, actionAddItem, actionRearrange, nil];

    self.navBar.topItem.rightBarButtonItems = rightBarItems;

}

バー ボタンの項目の一部を削除しようとすると、正常に表示されます。

- (IBAction)cancelClicked:(id)sender {



    NSArray*rightBarItems = [[NSArray alloc] initWithObjects:actionRearrange, nil];


    self.navBar.topItem.rightBarButtonItems = rightBarItems;

    Log(@"running cancel");
}

しかし、再配置をクリックして以下のコードを実行すると、これは機能しません。

- (IBAction)rearrangeClicked:(id)sender {


        [self resetNavigationBarRearrangeMode];


}

誰が何が悪いのか知っていますか?前もって感謝します。

4

1 に答える 1

1

barButtonItemsメソッドを呼び出すたびにオーバーラップします。並べ替えのメソッドを呼び出す前に、barButtonItemsを設定してリセットする必要があります。nil

 - (IBAction)rearrangeClicked:(id)sender {

    self.navigationItem.rightBarButtonItem = nil;
    [self resetNavigationBarRearrangeMode];


    }

それはうまくいくでしょう。詳細については、このリンクを参照してください。

于 2012-08-23T09:51:55.997 に答える