UINavigationController не показывает контроллер Root View - PullRequest
2 голосов
/ 02 августа 2011

У меня есть UIView (menuView в коде ниже) размером 320x218 внутри представления. Я хочу загрузить контроллер навигации в это представление. Я использую следующий код для этого:

MenuViewController *menuController = [[MenuViewController alloc] initWithNibName:@"MenuViewController" bundle:nil];

UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:menuController];
navigationController.navigationBarHidden = YES;

[menuView addSubview:navigationController.view];
[menuController release];
[navigationController release];

Когда я выполняю его, корневое представление не отображается в этом представлении. Отображается только панель навигации, а остальная часть представления пуста.

Edit:

Я только что поместил NSLog () в initWithNibName: и viewDidLoad: в MenuViewController. Один в initWithNibName: вызывается, а другой в viewDidLoad: не: S

Обновление:

Я пытался подтолкнуть menuController к своему navigationController мышлению, так как он не появляется, возможно, его нет в стеке. Исключение:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Pushing the same view controller instance more than once is not supported

Ответы [ 4 ]

8 голосов
/ 15 сентября 2012

вызовов Layouts Subviews работают.

[super loadView];
[self.view addSubview:navigationController.view];
[navigationController.view layoutSubviews];
3 голосов
/ 04 августа 2011

Я нашел ответ здесь:

UIViewController -viewDidLoad не вызывается

Мне пришлось добавить эти строки кода после -initWithRootViewController, чтобы загрузитьвид моего корневого представления Контроллер:

navigationController.navigationBarHidden = YES;
[navigationController setView:menuController.view];
0 голосов
/ 02 апреля 2013
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
// Override point for customization after application launch.

ViewController *viewController = [[[ViewController alloc] initWithNibName:@"ViewController" bundle:nil] autorelease];

navController = [[UINavigationController alloc]initWithRootViewController:viewController];

self.window.rootViewController = self.navController;

Попробуйте этот код в методе appdelegate

0 голосов
/ 02 августа 2011

Вы не должны добавлять navigationViewController в качестве подпредставления к вашему MenuViewController.Так как navigationViewController уже содержит MenuViewController.

Просто отобразите navigationViewController.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...