【问题标题】:Unexpectedly found nil while implicitly unwrapping an Optional value在隐式展开可选值时意外发现 nil
【发布时间】:2019-08-01 12:16:08
【问题描述】:

我正在尝试在 Swift 中从 cocoapods 中使用可自定义的 PageMenuViewController :Link

我想加载我已经创建的视图,但我得到的只是一个空白页面

这是加载视图的函数:

  func viewControllers(forPageMenuController pageMenuController: PageMenuController) -> [UIViewController] {

        let detailVC = HomeViewController()
        let vc : UIViewController = detailVC as UIViewController
        let detailVC1 = SearchViewController()
        let vc1 : UIViewController = detailVC1 as UIViewController

        return [vc ,vc1  , vc ,vc1 ]
    }

当我使用包含表格视图的 ViewController 时,我收到此错误:

致命错误:在隐式展开可选值时意外发现 nil

Error

有人可以帮帮我吗?

【问题讨论】:

  • 我想我知道问题所在,但我不知道解决方案。因为您自己实例化了这些视图控制器,而不是让它们由 xib/nib/storyboard 实例化,所以它们的 IBoulet 从未被填充,因此其中一个 VC 的 tableview 是 nil,例如。解决方案是从情节提要中加载 VC,但我不知道该怎么做。希望这会为您指明正确的方向
  • 是的,这是有道理的 :) 非常感谢您

标签: swift tableview cocoapods viewcontroller


【解决方案1】:

我通过情节提要启动了我的 ViewController,它起作用了。所以而不是:

   let detailVC = HomeViewController()
        let vc : UIViewController = detailVC as UIViewController

我写了:

   let storyboard = UIStoryboard(name: "Main", bundle: nil)
        let controller = storyboard.instantiateViewController(withIdentifier: "HomeViewController")

它有效,但页面仍然是白色的,没有任何改变。 谢谢亚历山大

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-23
    • 2016-10-18
    相关资源
    最近更新 更多