我正在使用navigationItem.setHidesBackButton(true, animated:false)
在viewDidLoad
中的iOS10应用中隐藏后面按钮。当我这样做时,在导航栏上,简短显示了后面按钮标签(它正在淡出(,而不是完全显示动画,而根本不显示它,屏幕更改后,按钮消失了。
我如何防止它发生?
假设您要从控制器A到控制器B。当前,您正在控制器B的viewDidLoad
中应用self.navigationItem.hidesBackButton = true
。
在控制器A的viewWillDisappear
或prepareForSegue
中将A推到B时添加此非常相同的代码(如果您使用的是SEGUE(
-(void)viewWillDisappear:(BOOL)animated{
self.navigationItem.hidesBackButton = true;
}
在prepareForSegue
中是一个更安全的选项,因为每当此控制器A越过屏幕时,viewWillDisappear
都会被调用。但是在prepareForSegue
中,您可以检查以下代码仅在从控制器A到Controller 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;
}
}