我目前有一个用Objective-C编写的自定义UINavigationController,它有一个实现
- (UINavigationItem *)navigationItem
实现如下所示:
- (UINavigationItem *)navigationItem {
UINavigationItem *item = [[UINavigationItem alloc] initWithTitle:@"Map Search"];
item.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@" " style:UIBarButtonItemStylePlain target:nil action:nil];
UIBarButtonItem *leftBarButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"btn_menu"] style:UIBarButtonItemStylePlain target:self action:@selector(leftBarButtonPressed:)];
item.leftBarButtonItem = leftBarButtonItem;
UIBarButtonItem *rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Other Button" style:UIBarButtonItemStylePlain target:self action:@selector(otherButtonPressed:)];
item.rightBarButtonItem = rightBarButtonItem;
return item;
}
这工作正常,并按预期在rootViewController的导航栏中显示我的按钮。然而,当我试图隐藏工具栏按钮项时,什么都没有发生。我尝试将按钮设置为零,并创建UIBarButtonItem强属性,以保留对我的按钮的引用,以便稍后返回到以前的状态,例如。
self.navigationController.navigationItem.rightBarButtonItem = nil;
...
self.navigationController.navigationItem.rightBarButtonItem = _strongPropertyUIBarButtonReference;
我还尝试通过引用按钮
self.navigationItem.rightBarButtonItem
我试过用alpha属性隐藏这些按钮。我尝试在自定义UINavigationController类中创建一个方法,将条形按钮项引用设置为零。一切都无济于事。任何帮助都将不胜感激。