UINavigationController, натискайки UITabBarController, показва само един раздел

Имам приложение, което има UITabBarController, създадено в IB. Tbc зарежда 3 изгледа, които работят добре досега.

Реших да ВМЪКНА UINavController като начален VC и да накарам UITableViewController да показва 4 елемента от менюто в клетките. Всеки от 4-те елемента по същество ще зареди пропуска UITabBarController put в различен xml файл за обработка, за да се покажат данни в тези 3 раздела.

По същество направих това в края на applicationDidFinishLoading:

MainMenu *rootViewController = [[MainMenu alloc] init];
navController = [[UINavigationController alloc] initWithRootViewController:rootViewController];
self.window.rootViewController = navController;
[window makeKeyAndVisible];
return YES;

След това създадох MainMenu като rootViewController подклас UITableViewController и добавих твърдо кодиран масив за сега, който показва 4-те елемента, които искам. Накарах didSelectRowAtIndexPath да изпълни този код:

tabBarController = [[UITabBarController alloc] init];
[self.navigationController pushViewController:tabBarController animated:YES];
[tabBarController release];

Оказва се, че когато го стартирам, навигационният контролер натиска контролера на раздела, но се показва само първият раздел. Ето една снимка.

въведете описание на изображението тук


person marciokoko    schedule 19.01.2012    source източник


Отговори (1)


Никога не трябва да натискате UITabBarController от UINavigationController. Apple ясно казва следното:

Приложение, което използва контролер за лента с раздели, може също да използва контролери за навигация в един или повече раздели. Когато комбинирате тези два типа контролер за изглед в един и същи потребителски интерфейс, контролерът на лентата с раздели винаги действа като обвивка за контролерите за навигация.`

Това по същество означава, че лентата с раздели трябва да бъде родител на всички други контролери за изглед, които се извикват. Не обратното. Вероятно трябва да промените начина, по който представяте приложението си.

Повече информация тук.

person Ravi    schedule 19.01.2012
comment
Проверете новото приложение на Apple, те изглежда натискат UITabBarController в UINavigationController - person msk; 15.10.2015
comment
бихте ли могли да актуализирате връзката? явно вече не е валиден. - person Yuchen; 16.09.2016