Почему мой модальный вид не отображается в моем приложении для iOS?

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

- (void)viewDidAppear:(BOOL)animated
{
 [super viewDidAppear:animated];

 MyViewController_iPhone *myVC = [[MyViewController_iPhone alloc] initWithNibName:@"MyView" bundle:nil];
 [[self navigationController] presentModalViewController:myVC animated:YES];
 [myVC release];
}

Когда я запускаю свое приложение и вхожу во второе представление, модальное представление не отображается. Когда я просматриваю его в отладчике, отладчик показывает, что все эти строки кода успешно выполняются, но я по-прежнему ничего не вижу на экране. В IB все мои классы и соединения правильно настроены для пера "MyView". Какие-либо предложения?

Кроме того, я новичок в разработке iOS, поэтому я не уверен, нормально это или нет, но когда я прохожу через это в отладчике, я замечаю, что я прохожу через метод viewDidAppear для представления на второй вкладке. , но когда я смотрю на свое устройство iOS, приложение по-прежнему отображает представление для первой вкладки. Если я выполняю метод viewDidAppear для определенного представления, не должно ли это представление отображаться на устройстве в этот момент?

Большое спасибо заранее за вашу помощь!


person BeachRunnerFred    schedule 01.09.2010    source источник


Ответы (1)


Вы говорите, что ваше представление находится в приложении на основе вкладок, но вы не упоминаете, есть ли на вкладках UINavigationControllers. Я упоминаю об этом, потому что вы вызываете presentModalViewController:animated: в результате [self navigationController], который, если вы видите, что ничего не происходит, я подозреваю, что он равен нулю. Возможно, вы хотели вместо этого вызвать его на [self tabBarController]?

person imaginaryboy    schedule 01.09.2010
comment
ааа, хороший улов! эта конкретная вкладка не имеет навигационного контроллера. это исправило, спасибо! - person BeachRunnerFred; 02.09.2010