我有一个导航栏,其中包含一个导航项,其中包含 2 个栏按钮,这些按钮是在情节提要中创建的,我想在运行时更改 1 个按钮,现在可以使用:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
UINavigationItem *thisNavBar = [self myNavigationItem];
thisNavBar.rightBarButtonItem = nil; // this works, it gets removed
UIBarButtonItem *insertBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemEdit target:self action:@selector(insertSkemaItem:)];
thisNavBar.rightBarButtonItem = insertBtn; // this also works, it sets the btn
}
现在,在另一个控制器调用的我的另一个方法中,它不起作用
- (void)callChildChange {
...
// remove old btn
UINavigationItem *thisNavBar = [self skemaNavigationItem];
thisNavBar.rightBarButtonItem = nil; // does not work?
}
该方法没有任何问题,它运行得很好,但是导航 btn 项目没有被删除?
skemaNavigationItem 是一个导航项,在 .h 文件中声明,该文件链接我通过情节提要制作的导航项。