UINavigationController: представление iPad во время удаления другого контроллера выполняется на iPad

У меня есть представление, которое требует, чтобы пользователь вошел в систему. Когда пользователь пытается открыть это представление, но он не вошел в систему, я вызову для него представление входа в систему, и после того, как он это сделает, я вызову исходное представление, которое он намеревался видеть.

На iPhone это работает нормально, так как я помещаю туда контроллеры представления. Но на iPad, где я представляю контроллер просмотра, это не работает. Это говорит о том, что увольнение в процессе, можетпоказать новый контроллер Вот код:

- (void) buttonPressed
{
    if (!userLoggedIn) { // userLoggedIn getter calls new screens of login if needed
    return;  // this is executed if user declined to login
    }
    MyViewController *temp = [[MyViewController alloc] init];
    [self.navigationController presentViewController:temp animated:YES]; // this returns warning that dismissal in progress and does not work
}

Что я могу с этим поделать? На iPhone вся моя логика работает нормально, но на iPad это не получается. Я использую его во многих местах, и полностью переписывать код не очень хорошо.

РЕДАКТИРОВАТЬ: больше кода:

- (BOOL) userLoggedIn {
   // code omitted
    [centerController presentViewController:navController animated:YES completion:nil];
   // code omitted
   [centerController dismissViewController:navController animated:YES]; // setting to NO does not fix my problem
   return YES;
}

EDIT2: это код для iPad. Я удалил код, связанный с iPhone. Что он делает на iPhone - вместо представления контроллера он использует нажатие, и в этой ситуации все работает отлично.

Ответы на вопрос(2)

Ваш ответ на вопрос