dismissViewControllerAnimated不会被忽略

时间:2013-09-30 21:24:17

标签: ios user-interface

我正在开发一款iPad应用程序,它有一个登录控制器,可以分割成一个视图控制器。登录控制器如此声明:

@interface LoginController : UIViewController <UITextFieldDelegate>

并且故事板具有(如预期的)用户名和密码文本字段以及用于身份验证和登录主应用程序的按钮。该按钮调用shouldPerformSegueWithIdentifier(...)函数,视图从登录视图切换到主视图。

当用户点击密码文本框返回时,我还想以编程方式模仿此操作。我已经把事件困住了,但我似乎无法实现切换。我正在使用的代码是:

    if (theTextField == self.password)
{
    BOOL loginSuccessful = [self shouldPerformSegueWithIdentifier:@"switchToViewer" sender:self];

    if (loginSuccessful == YES)
    {
        [self dismissViewControllerAnimated:YES completion:^{
            NSLog(@"I should be dismissing here!\n");
        }];
    }
}

然而,这种观点永远不会被驳回。我应该注意到这是在iOS 7上,我不知道这是否重要。有什么想法吗?

编辑:我现在的解决方法是欺骗按钮触摸事件:

[self.signIn sendActionsForControlEvents: UIControlEventTouchUpInside];

Hacky,但它有效:)

1 个答案:

答案 0 :(得分:4)

[self.presentingViewController dismissViewControllerAnimated:YES completion:nil];