instantiateViewController:尝试打开新视图

时间:2016-11-24 11:29:53

标签: ios swift3 ios10

我正在尝试打开新视图

ViewController.swift     - > InAppBrowserController.swift

Main.storyboard - > InAppBrowser查看make&故事板ID - >确定。

let storyboard = UIStoryboard(name: "Main", bundle: nil)
let nextViewController = storyboard.instantiateViewController(withIdentifier: "InAppBrowserView") as! InAppBrowserController
self.present(nextViewController, animated: true, completion: nil)
  

块引用   致命错误:在展开Optional值时意外发现nil   2016-11-24 20:24:50.569000 GMK SWork [5920:2148780]致命错误:在打开可选值时意外发现nil

有什么问题?

2 个答案:

答案 0 :(得分:0)

在你的故事板中,你必须设置UIViewController的标识符,然后才能这样:

let yourController = UIStoryboard.init(name: @"yourStoryboardName", bundle: nil).instantiateViewController(withIdentifier: "yourVCIdentifier") as? UIViewController

对于设置标识符很重要(我认为没有找到你的控制器)

enter image description here

在任何情况下,如果您没有特殊需求,您应该直接使用故事板中的'segue'并按下/显示您的控制器:

self.performSegue(withIdentifier: "yourVCIdentifier", sender: self)

答案 1 :(得分:0)

 let storyBoard = UIStoryboard(name: "Main", bundle: nil)
 if let controller = storyBoard.instantiateViewController(withIdentifier: "InAppBrowserView") as? InAppBrowserController {  
    self.present(controller, animated: true, completion: nil)
    } else {
        print("Controller not found")
    }

如上所述编写安全代码,并确保在故事板中添加了标识符并将类正确地分配给视图控制器,否则它将返回nil。