iOS:导航栏项目消失并重新出现

时间:2012-08-22 11:15:29

标签: iphone objective-c ios ipad uinavigationitem

尝试在导航栏上添加和删除导航栏项目时,某些栏项目会消失。

当我在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];


}

任何人都知道什么是错的?提前谢谢。

1 个答案:

答案 0 :(得分:1)

每次调用方法时,barButtonItems都会重叠。在调用重新排列方法之前,您需要将其设置为barButtonItems来重置nil

 - (IBAction)rearrangeClicked:(id)sender {

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


    }

它会起作用。请参阅此link以获取进一步的帮助。