在无动画的情况下隐藏了ViewDidload中的后退按钮



我正在使用navigationItem.setHidesBackButton(true, animated:false)viewDidLoad中的iOS10应用中隐藏后面按钮。当我这样做时,在导航栏上,简短显示了后面按钮标签(它正在淡出(,而不是完全显示动画,而根本不显示它,屏幕更改后,按钮消失了。

我如何防止它发生?

假设您要从控制器A到控制器B。当前,您正在控制器B的viewDidLoad中应用self.navigationItem.hidesBackButton = true

在控制器A的viewWillDisappearprepareForSegue中将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;
    }
 }

最新更新