![](/img/trans.png)
[英]Swift Xcode Switching between View Controllers - Navigation between View Controllers
[英]Switching view controllers in swift
我有2个视图控制器。 主要的一个mainMenuViewController,次要的一个ViewController。
辅助视图控制器有时会显示一个警报,当用户选择“取消”时,我希望显示mainMenuViewController。
如何使用代码实现这一目标?
到目前为止,我有以下几点:
let refreshAlert = UIAlertController(title: "You Win!", message: "Do you want to play again?", preferredStyle: UIAlertControllerStyle.Alert)
refreshAlert.addAction(UIAlertAction(title: "Yes", style: .Default, handler: { (action: UIAlertAction!) in
self.restart()
}))
refreshAlert.addAction(UIAlertAction(title: "Cancel", style: .Cancel, handler: { (action: UIAlertAction!) in
print("Handle Cancel Logic here")
}))
presentViewController(refreshAlert, animated: true, completion: nil)
当用户单击“取消”时,我已经临时打印了行print(“此处为Handle Cancel Logic”),但是我需要mainMenuViewController激活。
我尝试创建一个函数来执行此操作,但是它不起作用,您能建议原因吗?
@IBAction func quit(sender: UIBarButtonItem) {
let vc = mainMenuViewController()
self.presentViewController(vc, animated: true, completion: nil)
}
任何帮助表示赞赏!
您不能只在VC类上调用初始化程序来初始化VC。 这不是正确的方法。
我假设您有一个名为Main.storyboard
的情节Main.storyboard
。 如果您没有,请创建一个并添加MainViewController
。 您应该给MainViewController
一个标识符:
首先,您需要获取情节提要:
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let vc = storyboard.instantiateViewControllerWithIdentifier("mainVC")
现在vc
是MainViewController
! 您可以通过presentViewController
呈现它。
或者,您可以使用segues!
用segue连接SecondaryViewController
和MainViewController
。 给它一个标识符并打电话
performSegueWithIdentifier("some identifier", sender: self)
在带有Storyboard的 Swift 3中 :
在第一个视图控制器的代码中,要切换时,请写:
let storyBoard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil) let secondVC = storyBoard.instantiateViewController(withIdentifier: "secondVC") self.present(mainVC, animated: true, completion: nil)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.