При запуске приложения, если пользователь не имеет регистрационной информации, я хочу отобразить контроллер модального представления, чтобы принудительно ввести эту информацию. Я нашел через пробную версию и ошибку, что это должно было произойти в viewDidAppear моего контроллера корневого представления. Я попытался поместить его в viewDidLoad и viewWillAppear, но это не сработало, если я не назначил представление контроллера корневого представления на вид контроллера навигации, используемого в модальном, который затем вызвал другие проблемы...
Итак, у меня есть:
- (void)viewDidAppear:(BOOL)animated
{
NewAccountViewController *newAccountViewController = [[[NewAccountViewController alloc] initWithNibName:@"NewAccountViewController" bundle:nil] autorelease];
UINavigationController *accountNavigationController = [[UINavigationController alloc] initWithRootViewController:newAccountViewController];
[self presentModalViewController:accountNavigationController animated:YES];
}
И в newAccountViewController у меня есть простая кнопка навигационного элемента, которая отклоняет контроллер модального представления с помощью функции offsetModalViewController.
Это все работает, и когда модаль отклоняется, вид в навигационном контроллере виден с его заголовком пункта навигации вверху.
Но есть белый пробел примерно того же размера, что и строка состояния между строкой состояния и верхней частью синей панели навигации. Если я не буду делать модальный, то разрыв никогда не будет. Это происходит только после того, как модальный представлен и отклонен. Я пробовал делать анимированные: НЕТ как на настоящем, так и на sendModalViewController. Я также не пытался использовать навигационный контроллер в модальном режиме, и это тоже ничего не делало. Любые идеи были бы замечательными! Спасибо.