0

Вот код, который я звоню совать навигации контроллера по всему моему приложению панели вкладок:Как представить модальный просмотр UINavigation через приложение iOS на панели вкладок?

LoginViewController *logController = [[LoginViewController alloc] initWithNibName:@"LoginViewController" bundle:nil]; 
EditNavController *navController = [[EditNavController alloc] initWithRootViewController:logController]; 
[self.navigationController presentModalViewController:navController animated:NO]; 

, и я получаю следующее предупреждение в моем журнале:

Warning: Attempt to present <EditNavController: 0xa95b980> on <MyTabController: 0x1152fd60> whose view is not in the window hierarchy! 

код работает, но я хочу сделать это правильно, чтобы это предупреждение не появилось.

Как исправить это?

ответ

2

если MyTabController является tabbarcontroller, вы должны использовать

[self presentViewController:navController animated:YES completion:^{}]; 

помнить, что presentModalViewController: анимированные: это deprecated since iOS6. Я думаю, проблема в том, что вы пытаетесь представить viewController в контроллере навигации на панели табуляции, которая не находится в иерархии представлений (потому что она не показана). Вместо этого вы должны представить контроллер модального представления в контроллере панели вкладок (который имеет IS в иерархии представлений). Надеюсь, это поможет!

+0

Спасибо! Теперь я получаю это ... Предупреждение: попытайтесь представить в во время презентации! - Есть идеи? Может быть, открыть еще один вопрос здесь, на StackOverflow? –

+0

Возможно, вы дважды представляете контроллер просмотра. Можете ли вы предоставить нам еще какой-нибудь код? Может быть, отладка только с точками останова, чтобы увидеть, сколько раз этот код вызывается, может помочь! – lucaslt89

+0

Да, его вызывали дважды. Исправлена. Благодаря! Теперь все предупреждения ушли! –

Смежные вопросы