UINavigationController отображает заголовок, но не просматривает - PullRequest
0 голосов
/ 20 ноября 2010

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

У меня часть заставки работает нормально, но у меня возникают проблемы с частью NavigationController.


[splashView.view removeFromSuperview];

mainMenu = [[menuScreenViewController alloc] initWithNibName: @ "menuScreenViewController" bundle: nil];mainMenu.title = @ "Меню";mainNavController = [[UINavigationController alloc] init];[mainNavController pushViewController: mainMenu animated: NO];

[MAINVC.view addSubview: mainNavController.view];

[выпуск mainMenu];[выпуск mainNavController];

[выпуск splashView];


(MAINVC в другом месте определен как мой контроллер основного представления).

В любом случае, когда я это делаюЯ получаю навигационный контроллер с заголовком «Меню», но представление, содержащееся в контроллере представления mainMenu, не отображается в навигационном контроллере.

Если я просто добавлю представление главного меню в подпредставление MAINVC.view, оно будет отображаться правильно.

Какие-либо предложения о том, как заставить его отображаться в моем контроллере навигации?

1 Ответ

0 голосов
/ 20 ноября 2010

avery, вам нужно будет инициализировать контроллер навигации с mainMenu в качестве корневого контроллера представления, вместо того, чтобы просто инициализировать и затем выдвинуть новое представление. Для работы необходим корневой контроллер вида.

mainMenu = [[menuScreenViewController alloc] initWithNibName:@"menuScreenViewController" bundle:nil];
mainMenu.title = @"Menu";
mainNavController = [[UINavigationController alloc] initWithRootViewController:mainMenu];

//ADD MODAL SPLASH SCREEN HERE

[MAINVC.view addSubview:mainNavController.view];

[mainMenu release];
[mainNavController release];

[splashView release];

Как видно из приведенного выше комментария, я предлагаю вам инициализировать этот путь, а затем добавить заставку в навигационный контроллер в качестве modalViewController. Это предотвратит любую задержку инициализации mainMenu при нажатии на сенсорный экран. Затем, когда модальное представление получает прикосновение, вы можете позвонить:

[self.parentViewController dismissModalViewControllerAnimated:YES];
...