навигационная панель не отображается, когда я помещаю UINavigationController в UIPopoverController - PullRequest
0 голосов
/ 13 января 2012

Я добавляю UIViewController в UINavigationController и затем устанавливаю представление UIPopoverController в UINavigationController. Все работает отлично, за исключением того, что у меня нет навигационной панели в верхней части popoverController. Я создаю все так:

QueryViewController *puvc = [[QueryViewController alloc] autorelease];
UINavigationController *nc = [[UINavigationController alloc] autorelease];
[nc pushViewController:puvc animated:YES];

self.popUp = [[[UIPopoverController alloc] initWithContentViewController:nc] autorelease];
[self.popUp presentPopoverFromBarButtonItem:[self.toolbarItems objectAtIndex:0] permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
self.popUp.delegate = self;

Я попытался установить navigationBarHidden = NO, но он все еще не отображается. У меня есть этот код в моем viewDidLoad моего QueryViewController:

self.contentSizeForViewInPopover = CGSizeMake(500.0, 500.0);
self.title = @"Queries";

Есть ли что-то, чего мне не хватает для отображения панели навигации? Я уже в UINavigationController для моего основного экрана, это может быть частью моей проблемы?

1 Ответ

1 голос
/ 13 января 2012
 QueryViewController *puvc = [[QueryViewController alloc] autorelease];
 UINavigationController *nc = [[UINavigationController alloc] autorelease];

Возможно, ваш код неверен. Где init методы?

Вы должны инициализировать ваши QueryViewController и UINavigationController. Для второго использования initWithRootViewController метод.

QueryViewController *puvc = [[[QueryViewController alloc] init] autorelease];
UINavigationController *nc = [[[UINavigationController alloc]  initWithRootViewController:pucv] autorelease];
//[nc pushViewController:puvc animated:YES];

Если вы используете initWithRootViewController, нет необходимости выдвигать экземпляр puvc.

Вы также можете попробовать это (мне нравится освобождать память, не используя авто-релиз).

QueryViewController *puvc = [[QueryViewController alloc] init];
UINavigationController *nc = [[UINavigationController alloc]  initWithRootViewController:pucv];
//[nc pushViewController:puvc animated:YES];

Затем в конце вашего фрагмента кода не забудьте освободить puvc и nc.

[puvc release];
[nc release];

P.S. Проверьте код, потому что я написал без XCode.

...