难以理解 Objc MVC:退出并展开 Segue

trouble understanding Obj-C MVC: exit and unwindSegue

创建了一个从第二个 ViewController 退出到前一个 ViewController 的按钮。我在教程中读到这应该通过在视图控制器中使用 "EXIT" 来实现。 (control+点击+拖动按钮退出)。

我在第二个控制器上创建了一个 "exit" 按钮,并在 ViewController class 上创建了一个方法来连接 control+click+drag exit segue。这个方法完全是空的:

 - (IBAction) unwindToMainMenu:(UIStoryboardSegue *) unwindSegue
{

}

然而,当我按下按钮时,它 return 按我的预期返回到之前的 ViewController,但我原以为什么都不会发生(因为该方法没有内容)。

我假设传入此方法的 StoryboardSegue 对象是我将按钮拖入的这个 EXIT,但没有代码来处理该对象。

编辑: 另外,我没有 returning 任何东西,但是该方法的声明说它应该 return 一个 IBAction。为什么编译器没有抱怨?

你能帮我理解我错过了什么吗?

欢迎使用 Whosebug,

首先,IBAction 只是 'you can drag to this' 对 Xcode 的一种表达方式,它并不像 return 类型,我只是认为它无效。

其次,它按预期工作:D 基本上,您现在可以像将它与情节提要连接起来一样调用此方法,或者您可以像这样手动调用它:

[self performSegueWithIdentifier:@"unwindToMainMenu" sender:self]; 

并且您在当前视图控制器中设置的所有变量都将传递回您要展开到的源视图控制器。

例如

-(IBAction)prepareForUnwind:(UIStoryboardSegue *)segue {
    if ([segue.identifier isEqualToString:@"unwindToMainMenu"]) {
    VcExample *vcExample= (VcExample *)segue.sourceViewController;
    NSString *string = vcExample.aVariableNameYoureInterestedInFromTheVCYouUnwoundFromLolThisIsLong;
    }  
}

unwind segue 只是一个内置功能,如果你将那个按钮连接到它,它就会 segue