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 回答