【问题标题】:Why is hidesBottomBarWhenPushed not working when not root view controller?为什么不是根视图控制器时 hidesBottomBarWhenPushed 不起作用?
【发布时间】:2017-04-15 12:45:49
【问题描述】:

一个视图控制器被推送,底部标签栏被隐藏,如下所示:

let myViewController = self.storyboard?.instantiateViewController(withIdentifier: MyViewController) as! MyViewController 
myViewController.hidesBottomBarWhenPushed = true
navigationController?.pushViewController(myViewController, animated: true)

效果很好。

但是,当我在推送之前更改根视图控制器时,底部栏不会隐藏。

// Change the root view controller
let firstRootViewController = UIApplication.shared.keyWindow!.rootViewController
UIApplication.shared.keyWindow!.rootViewController = secondRootViewController

// Push view on stack of navigation controller which is a child of firstRootViewController
let myViewController = self.storyboard?.instantiateViewController(withIdentifier: MyViewController) as! MyViewController 
myViewController.hidesBottomBarWhenPushed = true
navigationController?.pushViewController(myViewController, animated: true)

// Some more things happen...

// Switch back to previous root view controller
UIApplication.shared.keyWindow!.rootViewController = firstRootViewController

结果是导航控制器正确推送了myViewController,但底部栏可见,好像参数hidesBottomBarWhenPushed被忽略了一样。

这里有什么问题?

【问题讨论】:

    标签: swift uinavigationcontroller pushviewcontroller


    【解决方案1】:

    解决方案是不更改根视图控制器,而仅将视图添加到 keyWindow:

    // Add another view on top of all views
    UIApplication.shared.keyWindow?.addSubView(self.view)
    
    // Push view on stack of navigation controller which is a child of firstRootViewController
    let myViewController = self.storyboard?.instantiateViewController(withIdentifier: MyViewController) as! MyViewController 
    myViewController.hidesBottomBarWhenPushed = true
    navigationController?.pushViewController(myViewController, animated: true)
    
    // Some more things happen...
    
    // Remove topmost view
    self.view.removeFromSuperview()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多