2016-01-05 23 views
0

我遇到了Unwind Segue的问题。我有3个ViewControllers和他们所有类下名为ViewController.swift。我试图得到最后一个ViewController,它是第三个,只需点击一下按钮就可以开始ViewController,但我似乎无法得到它。我在提交此问题之前试图进行研究,但无法找到它。如果有更多的信息,你需要告诉我。SWIFT,ViewControllers和展开到最初的ViewController

回答

0

你有VC1-> VC2-> VC3,并且想从VC3直接展开到VC1。为此,您需要在VC1中定义的@IBAction,该值未在VC2中定义。这是目前不可能的,因为您的所有ViewController在ViewController.swift中使用相同的类定义。

解决此问题的一种方法是在不复制ViewController.swift中的所有代码的情况下,子类为ViewController并只添加VC1特有的功能。然后在Storyboard中选择第一个ViewController,并在Identity Inspector中设置自定义类别MainViewController

class MainViewController: ViewController { 
    @IBAction func returnToMain(segue: UIStoryboardSegue) { 
     print("back in the MainViewController") 
    } 
} 

然后,当您设置开卷SEGUE控制从您的按钮,在你的第三个视图控制器的顶部退出图标 -drag,然后从弹出的returnToMain行动。

+0

对不起,新的,我将如何继承VC1? –

+0

每个viewController应该有它自己的关联类。查看关于如何为viewController添加新类的问题。 http://stackoverflow.com/q/26962713/1630618。上面的答案假定您的viewController之间有很多共同点,并且您不想复制整个viewController.swift文件。上面的代码展示了如何继承另一个viewController,并添加您需要的额外功能作为从另一个viewController返回的“着陆点”。 – vacawama

+0

非常感谢,我开始更多地了解UnwindSegue的内容。 –

相关问题