【问题标题】:UINavigationController returning nilUINavigationController 返回零
【发布时间】:2016-11-24 15:12:48
【问题描述】:

我们已经有相同的问题,UINavigationController 正在返回 nil,但它们都与 this 之类的 segues 有关,但我的问题有点不同:

在我的 TableViewController 中,我嵌入了一个 UINavigationController,并从我的 tableView 中打开了另一个 ViewController(在这个 viewController 中,navigationController 为零)

我的故事板:

奇怪的是,如果我选择 tableView 的第一行或最后一行,一切正常(navigationController 不返回 nil)但是当我选择任何其他行时它返回 nil

我在ViewWillAppearScrollViewDidScroll 中使用导航栏:

override func viewWillAppear(animated: Bool) {

    hairLine.hidden = true
    self.navigationController?.navigationBar.setBackgroundImage(UIImage(), forBarMetrics: .Default)
    self.navigationController?.navigationBar.shadowImage = UIImage()
    self.navigationController?.navigationBar.translucent = true
    self.navigationController?.view.backgroundColor = UIColor.clearColor()
    self.navigationController?.navigationBar.backgroundColor = UIColor.clearColor()
    self.navigationController?.navigationBar.tintColor = UIColor.blackColor()

}

有人知道这里有什么问题吗?

【问题讨论】:

  • 首先从你的故事板中删除 segue 现在在 tableview 的“didSelectRowForIndexPath”委托方法中编写用于推送视图的方法。
  • @Gagan_iOS 已经完成了那个人

标签: ios uinavigationcontroller swift2 uistoryboardsegue


【解决方案1】:

我认为您已经直接从原型单元而不是视图控制器加入了 segue。不从任何 UI 组件加入控制器到控制器之间的 segue。覆盖prepareForSegue 方法。

【讨论】:

  • 嘿,伙计,我按照您的建议尝试了,但仍然 navigationController 为 nil
  • 你在tableview的didselect方法里写了什么?
  • performSegueWithIdentifier("openTag", sender: self)
  • 你检查过故事板中的 segue 连接了吗?
猜你喜欢
  • 2013-02-09
  • 1970-01-01
  • 1970-01-01
  • 2014-01-09
  • 2023-03-26
  • 2011-03-20
  • 2021-09-23
  • 2021-10-24
  • 2017-11-19
相关资源
最近更新 更多