0

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

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

3 回答 3

1

当您呈现 UIViewController 时,您应该在呈现的 UIViewController 中有一些返回按钮,通过单击它用户可以返回。

在该按钮的 IBAction 中,您可以使用以下代码:

@IBAction func goBack() {
    dismissViewControllerAnimated(true, completion:nil)
}

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

于 2015-03-25T16:33:52.890 回答
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

*

*

注意:此外,如果您希望以编程方式而不是从按钮展开展开。 在此处输入图像描述 Control+从 NewVC 黄色拖动退出,这将在“Exit”下创建一个展开 segue在此处输入图像描述选择这个“Unwind segue”并在属性检查器中给它一个标识符。在此处输入图像描述

现在在 NewVC 中创建一个函数

func NameYourFunc(){performSegueWithIdentifier("TheIdentiferYouUsed", sender: self)}

当您想要执行此展开时,只需调用 NewVC 代码中的任何位置NameYourFunc()

于 2015-03-25T19:10:55.450 回答
0

在我发现很难回去之前,我遇到过类似的问题,我没有的第一件事是导航控制器,需要下面的代码

func goToMainVC() {
    if let navController = self.navigationController {
        navController.popToRootViewControllerAnimated(true)
    }
}

请查看我在此处遇到类似问题时发布的答案

完全希望这会有所帮助

于 2015-03-25T16:25:56.663 回答