以编程方式从viewcontroller切换到另一个

时间:2018-03-14 11:50:33

标签: ios swift uiviewcontroller ios11

我正在尝试创建一个应用程序,它将以编程方式从View Controller切换到另一个。我已经尝试使用此代码执行此操作:

let secondViewController = self.storyboard?.instantiateViewController(withIdentifier: "EndViwController") as! EndViewController
self.navigationController?.pushViewController(EndViewController, animated: true)

但它让我反感这个错误:

  

[无法转换类型的值' EndViewController.Type'预期   参数类型' UIViewController']

另外,当我尝试其他代码时:

let timeLineTableVC = EndViewController()
self.present(timeLineTableVC, animated: true, completion: nil)

它在模拟器上给我一个黑屏,并且EndViewController没有出现。

最后,当我尝试这个时:

let storyboard = UIStoryboard(name: "EndViewController", bundle: nil)
let controller = storyboard.instantiateViewController(withIdentifier: "EndViewController")
self.present(controller, animated: true, completion: nil)

它给了我这个错误:

  

[libc ++ abi.dylib:以未捕获的类型异常终止   NSException(lldb)]

1 个答案:

答案 0 :(得分:3)

你的第一段代码不起作用,因为EndViewController是一种类型。您应该将此替换为您在上面声明的secondViewController

第二部分代码无效,因为您正在创建一个空的' EndViewController类型而不是实例化故事板视图。

我猜测第三位代码失败了,因为你的故事板没有被调用" EndViewController" (除非你将其重命名)。尝试将其更改为" Main"代替。