在没有动画的情况下隐藏 viewDidLoad 中的后退按钮
Hiding back button in viewDidLoad without animation
我在 viewDidLoad
的 iOS10 应用程序中使用 navigationItem.setHidesBackButton(true, animated:false)
隐藏后退按钮。当我这样做时,在导航栏上,后退按钮标签会在呈现动画时短暂显示(淡出)而不是根本不显示,在屏幕切换后,按钮消失了。
我怎样才能防止它发生?
假设您要从控制器 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 转到控制器 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;
}
}
我认为这将是 swift 版本:如果语法不合适,请原谅我
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if(segue.identifier == "SEGUE_NAME"){
self.navigationItem.hidesBackButton = true;
}
}
我在 viewDidLoad
的 iOS10 应用程序中使用 navigationItem.setHidesBackButton(true, animated:false)
隐藏后退按钮。当我这样做时,在导航栏上,后退按钮标签会在呈现动画时短暂显示(淡出)而不是根本不显示,在屏幕切换后,按钮消失了。
我怎样才能防止它发生?
假设您要从控制器 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 连接到控制器 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;
}
}
我认为这将是 swift 版本:如果语法不合适,请原谅我
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if(segue.identifier == "SEGUE_NAME"){
self.navigationItem.hidesBackButton = true;
}
}