在Xcode 6 Beta 4中展开Segue

时间:2014-07-25 17:05:05

标签: swift segue xcode6

我一直在尝试在Xcode 6中为swift应用程序添加一个unwind segue,并且在前三个beta版的发行说明中,它被声明为不受支持。但是,在Beta 4中,该错误说明不再存在。我听说人们已经能够让它上班,但我没有运气。所以,我的问题是:我应该如何尝试查看unwind segue是否可以在我的应用程序中运行?我该怎么办?我正在使用UIBarButtonItem来触发segue。

到目前为止,我已将此代码放在目标控制器的.swift文件中:

@IBAction func unwindToSegue(segue:UIStoryboardSegue) {}

使用此代码,我可以通过控制从条形按钮拖动到退出图标,然后单击unwindToSegue方法,将条形按钮连接到该功能。该部分已经运行,但是代码没有运行,即使我在函数内部放置一个断点而没有调用它。

4 个答案:

答案 0 :(得分:21)

您需要将unwindToSegue函数放在原始ViewController中(即您尝试返回的ViewController)。

您可以尝试的另一件事是以编程方式调用segue。首先,将视图控制器图标的出口segue连接到退出图标(三个图标全部位于Interface Builder中视图控制器的顶部)。给该segue一个名称,例如" goBackHome"。然后连接按钮以调用此@IBAction

@IBAction func headHome() {
    println("Button seen.  Trigging exit segue manually...")
    self.performSegueWithIdentifier("goBackHome", sender: self)
}

答案 1 :(得分:1)

我的问题是我从自定义容器VC中获取标准视图控制器(VC),但试图将其丢失原来的导航栏。研究论坛透露,解开细分市场将会出现#pop; pop"新的VC"协议"堆栈和让我回到最初的VC"协议"不变。

我将一个按钮拖到新的VC中,首先将其拖动到swift文件中以创建动作" back2main",将其修改为如下所示,然后将按钮拖动到顶部的退出图标新的VC本身,它生成" unwind segue"。

@IBAction func back2main(segue: UIStoryboardSegue) {
    dismissViewControllerAnimated(true, completion: nil)
}

答案 2 :(得分:0)

使用XCode 6 Beta 4可行。从类定义中删除@objc(classname)并删除(变通方法).h文件。

昨天我有类似的效果,我的Viewcontroller中的一个按钮没有触发展开segue。

试试: 在视图控制器上放置一个新的UIButton并保持原样。不要改变任何事情只是为了确保没有副作用。然后将此按钮连接到您的展开segue并尝试它是否有效。

答案 3 :(得分:0)

我有同样的问题。当我选择退出按钮并且它正在连接时,显示了展开功能,但是当按下按钮时,没有任何反复发生。

经过一番捣乱后,我意识到这是由于我选择从一个View Controller转移到另一个的Segue。

问题是我希望它返回的视图有多个不同的导航组件,这些组件在显示“子”视图时被删除。我通过将它从Show(或显示细节)更改为popover来解决它。

转到segue,选择属性检查器,然后从那里更改segue。