我不知道为什么,但是我在试图弄清楚如何回到主视图时遇到了很多麻烦。我使用下面的代码切换到新视图,但我该如何返回?
@IBAction func printPage(sender: AnyObject) {
var vc = self.storyboard?.instantiateViewControllerWithIdentifier("labelView") as PrintLabelView
self.presentViewController(vc, animated: true, completion: nil)
vc.toPass = skuLabel.text
}
答案 0 :(得分:1)
使用展开。
在MainViewController中
@IBAction unwindSegue(segue: UIStoryboardSegue, sender: UIStoryboardSegue){//any code you want executed upon return to mainVC
}
在NewViewController中
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?){//pass any information from New to Main here
}
然后,在NewVC中,只需控制+拖动您想要展开的任何UIButton到NewVC的Exit
符号并选择unwindSegue
*
*
注意:此外,如果您希望以编程方式而不是按钮进行展开。 控制+从NewVC黄色拖动到退出,这将在“退出”下创建展开segue选择此“展开segue”并在属性检查器中为其指定标识符。
现在在NewVC中创建一个函数
func NameYourFunc(){performSegueWithIdentifier("TheIdentiferYouUsed", sender: self)}
以及NewVC代码中的任何位置,当您想要执行此展开时,只需致电NameYourFunc()
答案 1 :(得分:0)
我之前遇到类似的问题,我发现很难回去,我没有的第一件事是导航控制器,需要以下代码
func goToMainVC() {
if let navController = self.navigationController {
navController.popToRootViewControllerAnimated(true)
}
}
请查看我遇到类似问题时发布的答案here
完全希望这会有所帮助
答案 2 :(得分:0)
当您呈现UIViewController时,您应该在呈现的UIViewController中有一些后退按钮,通过单击它可以返回用户。
在该按钮的IBAction中,您可以使用以下代码:
@IBAction func goBack() {
dismissViewControllerAnimated(true, completion:nil)
}
如果您使用的是导航视图控制器,则默认情况下会提供该功能。