【问题标题】:Navigation Controller Clear in Unwind Segue在 Unwind Segue 中清除导航控制器
【发布时间】:2016-04-12 06:09:21
【问题描述】:

我有一个连接两个视图的 segue。在父视图中,导航栏是灰色的,在子视图中,它是清晰的。展开 segue 时,父控制器中的导航栏现在也很清晰。如何解决这个问题?

父控制器

  override func viewWillAppear(animated: Bool) {
    self.navigationItem.title = "FEED"
    self.navigationController?.navigationBar.barTintColor = UIColor(white:0.97, alpha:1.0)
    let navBarLineView = UIView(frame: CGRectMake(0,
        CGRectGetHeight((navigationController?.navigationBar.frame)!),
        CGRectGetWidth((self.navigationController?.navigationBar.frame)!),
        1))
    navBarLineView.backgroundColor = UIColor(red:0.91, green:0.91, blue:0.92, alpha:1.0)
    navigationController?.navigationBar.addSubview(navBarLineView)
}

儿童控制器

 override func viewWillAppear(animated: Bool) {
    self.navigationItem.title = "Space
    self.navigationController?.navigationBar.barTintColor = UIColor.whiteColor()

    navigationController!.navigationBar.setBackgroundImage(UIImage(), forBarMetrics: UIBarMetrics.Default)
    navigationController!.navigationBar.shadowImage = UIImage()
    navigationController!.navigationBar.translucent = true
}

【问题讨论】:

    标签: ios swift uinavigationcontroller segue


    【解决方案1】:

    当我想恢复导航栏的默认样式时,在子控制器的 viewWillDisappear 方法中将背景和阴影图像设置为 nil 对我来说效果很好:

    override func viewWillDisappear(animated: Bool) {
        navigationController!.navigationBar.setBackgroundImage(nil, forBarMetrics: UIBarMetrics.Default)
        navigationController!.navigationBar.shadowImage = nil
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-29
      • 1970-01-01
      • 1970-01-01
      • 2018-10-14
      • 1970-01-01
      • 2020-03-20
      • 2019-01-21
      • 2012-08-30
      相关资源
      最近更新 更多