切换回;视图控制器之间的第四个Swift

时间:2015-03-25 16:20:47

标签: swift segue uistoryboardsegue unwind-segue

我不知道为什么,但是我在试图弄清楚如何回到主视图时遇到了很多麻烦。我使用下面的代码切换到新视图,但我该如何返回?

@IBAction func printPage(sender: AnyObject) {
        var vc = self.storyboard?.instantiateViewControllerWithIdentifier("labelView") as PrintLabelView
        self.presentViewController(vc, animated: true, completion: nil)
        vc.toPass = skuLabel.text
    }

3 个答案:

答案 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

*

*

注意:此外,如果您希望以编程方式而不是按钮进行展开。 enter image description here 控制+从NewVC黄色拖动到退出,这将在“退出”enter image description here下创建展开segue选择此“展开segue”并在属性检查器中为其指定标识符。enter image description here

现在在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)
}

如果您使用的是导航视图控制器,则默认情况下会提供该功能。