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