我有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)
当用户点击取消时,我暂时打印了行打印(“在此处理取消逻辑”),但我需要mainMenuViewController才能激活。
我已尝试创建一个功能来执行此操作,但它不起作用,你能说明原因吗?
@IBAction func quit(sender: UIBarButtonItem) {
let vc = mainMenuViewController()
self.presentViewController(vc, animated: true, completion: nil)
}
任何帮助表示赞赏!
答案 0 :(得分:2)
您不能只在VC类上调用初始化程序来初始化VC。 不是正确的方法。
我假设你有一个名为Main.storyboard
的故事板。如果您没有,请创建一个并添加MainViewController
。您应该为MainViewController
提供标识符:
首先,您需要获取故事板:
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let vc = storyboard.instantiateViewControllerWithIdentifier("mainVC")
现在vc
是MainViewController
!您可以按presentViewController
提供。
或者,您可以使用segues!
将您的SecondaryViewController
和MainViewController
与segue联系起来。给它一个标识符并打电话
performSegueWithIdentifier("some identifier", sender: self)
答案 1 :(得分:0)
Swift 3 故事板:
在第一个视图控制器的代码中,当您要切换时,请写:
let storyBoard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let secondVC = storyBoard.instantiateViewController(withIdentifier: "secondVC")
self.present(mainVC, animated: true, completion: nil)