easythrees
easythrees

Reputation: 1660

dismissViewControllerAnimated doesn't dismiss

I am working on an iPad app that has a login controller which segues into a view controller. The login controller is declared thusly:

@interface LoginController : UIViewController <UITextFieldDelegate>

and the storyboard has (as expected), a username and password text field and a button for authentication and logging into the main app. The button calls the shouldPerformSegueWithIdentifier(...) function and the view switches from the login view to the main view.

I would like to also mimic this programmatically, when the user hits return on the password text box. I've trapped the event, but I can't seem to get the switchover to happen. The code I'm using is:

    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");
        }];
    }
}

However, the view never gets dismissed. I should note that this is on iOS 7, I don't know if that matters. Any ideas?

EDIT: My workaround for now is to spoof the button touch event:

[self.signIn sendActionsForControlEvents: UIControlEventTouchUpInside];

Hacky, but it works :)

Upvotes: 0

Views: 2284

Answers (1)

Gabriele Petronella
Gabriele Petronella

Reputation: 108169

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

Upvotes: 4

Related Questions