ios storyboard跳转前的验证

来源:互联网 发布:软件申请专利的条件 编辑:程序博客网 时间:2024/05/16 04:34


有时候用storyboard搭建界面时,需要满足一定的条件才让界面往下跳转。比如用storyboard搭建登陆界面时,如果输入的用户名为空,阻止storyboard往下跳转。

比如登陆控制器的核心代码:

#pragma mark - Navigation/** *  开始跳转,可以在这个方法中向下一个界面传入参数 * *  @param segue   注意:[segue identifier] 不是storyboard中控制器的identifier,而是segue的identifier *  @param sender  sender代表触发跳转事件的控件,这里代表登陆的Button */- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {    NSLog(@"===============================>>>>>>>>%@",[segue identifier]);        /*      可以通过segue.sourceViewController获取到下一个界面的引用,然后向下一个界面传入需要的参数     */}/** *  跳转前时触发,如果返回NO,阻止跳转 *  @param identifier identifier代表的是segue的identifier,而不是storyboard中控制器的identifier。 这里的identifier其实与prepareForSegue:sender 方法中的[segue identifier]其实是同一个id *  @param sender     sender代表触发跳转事件的控件,这里代表登陆的Button * *  @return YES 跳转,NO 阻止storyboard跳转 */- (BOOL)shouldPerformSegueWithIdentifier:(NSString *)identifier sender:(nullable id)sender{    NSLog(@"identifier:%@   sender:%@",identifier,sender);        //阻止跳转    if([identifier isEqualToString:@"LoginSegueId"] && [self.userNameTextField.text length] == 0){        NSLog(@"请输入用户名");        return NO;    }    return YES;}

要特别注意方法中的identifier:


0 0