我想设置当前 navigationItem.backBarItem 的 title 属性,而不是相对于上一个 View 的标题。所以我使用这个方法:
self.navigationController.navigationBar.topItem.backBarButtonItem=barButtonItem;
但我发现它在某些情况下并不像我预期的那样。
在 View B 中使用 TOPITEM
在 View B 中使用 BACKITEM
我发现 self.navigationController.navigationBar.items
(我认为它是一堆 UINavigationItems)似乎不正确。
在 View A 中,输入 self.navigationController.navigationBarHidden=YES;
在 viewDidLoad
或 viewWillAppear:
也会导致不同的行为。
那么我的代码有什么问题呢?我是否应该显式访问 self.navigationItem 以强制初始化它(如果我不直接使用它)?
代码:感谢您的耐心等待
View A:
-(void)viewWillAppear:(BOOL)animated{
self.navigationController.navigationBarHidden=YES;
}
View B:
-(void)viewWillAppear:(BOOL)animated{
self.navigationItem.title=@"B";
self.navigationController.navigationBarHidden=NO;
UIBarButtonItem* buttonItem=[[UIBarButtonItem alloc]
initWithTitle:@"toA"
style:UIBarButtonItemStylePlain
target:self
action:nil];
self.navigationController.navigationBar.topItem.backBarButtonItem=buttonItem;
}
View C:
-(void)viewWillAppear:(BOOL)animated{
self.navigationItem.title=@"C";
self.navigationController.navigationBarHidden=NO;
UIBarButtonItem* buttonItem=[[UIBarButtonItem alloc]
initWithTitle:@"toB"
style:UIBarButtonItemStylePlain
target:self
action:nil];
self.navigationController.navigationBar.topItem.backBarButtonItem=buttonItem;
}
最佳答案
如果你想设置后退按钮使用
self.navigationItem.backBarButtonItem=buttonItem;
如果你想设置后退按钮的标题使用leftbarbutton
在 viewwillAppear
[self.navigationItem setHidesBackButton:YES];
UIBarButtonItem *buttonItem=[[UIBarButtonItem alloc]
initWithTitle:@"toA"
style:UIBarButtonItemStylePlain
target:self
action:@selector(back)];
self.navigationItem.leftBarButtonItem=buttonItem;
后退 Action
-(void)back
{
[self.navigationController popViewControllerAnimated:YES];
}
或者你可以试试这些
viewwillappear
-(void)viewWillAppear:(BOOL)animated
{
self.navigationController.navigationItem.hidesBackButton=YES;
UIBarButtonItem *buttonItem=[[UIBarButtonItem alloc]
initWithTitle:@"toA"
style:UIBarButtonItemStylePlain
target:self
action:@selector(back)];
self.navigationItem.leftBarButtonItem=buttonItem;
}
-(void)back
{
[self.navigationController popViewControllerAnimated:YES];
}
关于ios - 我的导航栏有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40418866/