我尝试使用代码从一个UIViewController切换到另一个UIViewController。现在我有,
self.presentViewController(ResultViewController(), animated: true, completion: nil)
所有这一切都是把我带到黑屏而不是ResultViewController。有什么建议?
答案 0 :(得分:24)
使用Storyboard。为第二个视图控制器创建一个swift文件(SecondViewController.swift) 并在适当的函数中键入:
let secondViewController = self.storyboard?.instantiateViewController(withIdentifier: "secondViewController") as! secondViewController
self.navigationController.pushViewController(secondViewController, animated: true)
没有故事板
let secondViewController = ViewController(nibNameOrNil: NibName, bundleOrNil: nil)
self.presentViewController(secondViewController, animated: true, completion: nil)
答案 1 :(得分:6)
你可以尝试这个
let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)
let resultViewController = storyBoard.instantiateViewControllerWithIdentifier("ResultView") as ResultViewController
self.presentViewController(resultViewController, animated:true, completion:nil)
确保设置视图控制器标识符。
答案 2 :(得分:4)
Swift 3
以模态方式呈现控制器
let vc = self.storyboard!.instantiateWithIdentifier("SecondViewController")
self.present(vc, animate: true, completion: nil)
显示控制器
self.show(vc, sender: self)
答案 3 :(得分:2)
最简单的方法是通过右键单击您正在开始的视图创建一个segue,然后将蓝线拖到结果视图控制器中,点击show segue选项。然后将segue的标识符设置为“segue”。现在,在视图控制器中的任何位置添加此代码:
self.performSegueWithIdentifier("segue", sender: nil)
这将触发将转到resultViewController的segue
答案 4 :(得分:1)
试试这个:
let vc = ViewController(nibNameOrNil: yourNibName, bundleOrNil: nil)
self.presentViewController(vc, animated: true, completion: nil)
希望这会有所帮助.. :)
答案 5 :(得分:0)
在iOS中切换屏幕的最简单方法是。在当前屏幕上添加一个按钮。然后按控制并将按钮拖动到目标屏幕。然后选择推送。当您点击按钮时,屏幕将切换到目标屏幕。 确保您使用的是UINavigationViewController。
答案 6 :(得分:0)
vc = YourViewController()
UIApplication.shared.keyWindow?.rootViewController = vc
或
vc = YourViewController()
UIApplication.shared.keyWindow?.rootViewController = UINavigationController(rootViewController:vc)//如果要向该VC添加导航功能
答案 7 :(得分:-1)
Shaba的答案是一个良好的开端,但需要以下内容才能得到你 可以从视图控制器中控制segue:
override func shouldPerformSegue(withIdentifier identifier: String,
sender: Any?) -> Bool {
// your code here
// return true to execute the segue
// return false to cause the segue to gracefully fail }