尝试在导航栏上添加和删除导航栏项目时,某些栏项目会消失。
当我在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];
}
任何人都知道什么是错的?提前谢谢。
答案 0 :(得分:1)
每次调用方法时,barButtonItems
都会重叠。在调用重新排列方法之前,您需要将其设置为barButtonItems
来重置nil
。
- (IBAction)rearrangeClicked:(id)sender {
self.navigationItem.rightBarButtonItem = nil;
[self resetNavigationBarRearrangeMode];
}
它会起作用。请参阅此link以获取进一步的帮助。