如果不满足条件,Xcode故事板取消推送

H B*_*amy 15 xcode push storyboard uiviewcontroller uinavigationcontroller

我在导航视图控件中有一个带按钮的故事板,该控件也有文本字段,它使用故事板segue push.但是,我有一些输入检查,如果任何文本字段为空,我会提醒用户.

我可以这样做,但它会提醒用户,然后切换到另一个视图.

push如果在按下Pressed方法中没有满足if条件,有没有办法取消这个?

NB此推送是由故事板界面创建的,而不是由代码创建的.

T.J*_*.J. 33

不要通过从按钮拖动到目标控制器来创建segue.相反,只需从源控制器拖动到目标控制器即可创建segue.单击segue并使用属性检查器指定segue是push并给segue一个标识符(goToDestination).然后将按钮连接到源视图控制器中的IBAction.在IBAction方法中进行检查,如果要进行推送,请添加以下代码行:

[self performSegueWithIdentifier: @"goToDestination" sender: self];
Run Code Online (Sandbox Code Playgroud)


Vis*_*hry 28

还可以使用以下内容,它将适用于不同类型的segue,如push,unwind等.从Storyboard中命名segue并使用此处给出的代码.如果您不希望执行特定的segue,则返回NO作为条件,默认返回YES.此方法应位于源视图控制器中.

- (BOOL)shouldPerformSegueWithIdentifier:(NSString *)identifier sender:(id)sender {
    if ([identifier isEqualToString:@"Segue_Name"]) {
        NSLog(@"Segue Blocked");
        //Put your validation code here and return YES or NO as needed
        return NO;
    }

    return YES;
}
Run Code Online (Sandbox Code Playgroud)

  • 我比接受的答案更喜欢这个. (3认同)