我正在navigationItem.setHidesBackButton(true, animated:false)
使用viewDidLoad
隐藏我的iOS10应用中的后退按钮delegate
。当我这样做时,在导航栏上,在显示动画而不是完全显示后,短暂显示后退按钮标签(它正在淡出),在屏幕更改后,按钮消失。
我怎样才能防止它发生?
答案 0 :(得分:1)
假设您从控制器A转到控制器B.
目前,您正在控制器B的self.navigationItem.hidesBackButton = true
中应用viewDidLoad
。
在控制器A的viewWillDisappear
或prepareForSegue
(如果使用segue)中从A推送到B时,添加相同的代码
-(void)viewWillDisappear:(BOOL)animated{
self.navigationItem.hidesBackButton = true;
}
更安全的选项在prepareForSegue
中,因为viewWillDisappear
只要控制器A进入OFF-SCREEN就会被调用。但是在prepareForSegue
中,您可以检查以下代码仅在从控制器A到控制器B时才能工作,通过以下代码
假设从控制器A连接到控制器B的segue被命名为“SEGUE_NAME”
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if([[segue identifier]isEqualToString:@"SEGUE_NAME"]){
/*
this means it is going from Controller A to Controller B
via segue "SEGUE_NAME"
*/
self.navigationItem.hidesBackButton = YES;
}
}
我认为这将是快速版本:如果语法不合适,请原谅我
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if(segue.identifier == "SEGUE_NAME"){
self.navigationItem.hidesBackButton = true;
}
}