阻止推送 segue 进行,直到被告知继续前进 - Obj C.


我有一个按钮IBOutlet,将

用作登录按钮。它被发送到该按钮的函数,我想在那里进行处理,一旦完成,就向前推viewcontroller

我已经将登录按钮链接到视图控制器以继续前进。如何暂停该推送 segue 向前移动,直到应用程序完成其处理并告诉它向前移动?

不要将按钮直接链接到下一个视图控制器,而是创建一个从UIViewController到下一个UIViewController的常规 segue,并为该 segue 指定标识符,以便在视图控制器的 .m 中,您可以在准备好执行 segue 时使用 performSegueWithIdentifier:

要以这种方式连接视图控制器,请单击第一个UIViewController下方的黑条,然后控制+从黄色按钮拖动到第二个UIViewController

然后要执行 segue 使用:

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

在按钮的 IBAction 方法中(如果满足条件)。

不要将情节提要上的按钮直接链接到下一个 viewController,而是将其链接到一个IBAction,您在其中放置登录代码,登录完成后,像这样
推送下一个视图控制器
[self.navigationController pushViewController:theNewViewController];如果您不知道如何创建newViewController请尝试:MyViewController newViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"theIdentifier"]
并且不要忘记将theIdentifier添加到情节提要中的新视图控制器

您可以在控制器中使用以下方法

- (BOOL)shouldPerformSegueWithIdentifier:(NSString *)identifier sender:(id)sender

在此方法中,您可以进行自定义处理并指示是否要执行 segue

最新更新