0

Это метод init для UINavigationController. Думаю, я должен делать это неправильно.Панель навигации скрыта за содержимым

- (id)init 
{ 
self = [super init]; 
if (self) { 

    self.view.backgroundColor = [UIColor blackColor]; 

    self.viewController = [[UIViewController alloc] init]; 

    self.viewControllers = [NSArray arrayWithObject:self.viewController]; 


    UIBarButtonItem *button = [[UIBarButtonItem alloc] initWithTitle:@"Done" 
                   style:UIBarButtonItemStylePlain 
                   target:self 
                   action:@selector(done)]; 
    self.viewController.navigationItem.rightBarButtonItem = button; 
    self.navigationBar.barStyle = UIBarStyleBlackTranslucent; 

    self.mediaScrollView = [[MediaScrollView alloc] initWithFrame:self.view.bounds]; 
    self.mediaScrollView.touchDelegate = self; 
    self.mediaScrollView.fullScreenDelegate = self; 
    [self.viewController.view addSubview:self.mediaScrollView]; 


} 
return self; 

}

mediaScrollView происходит перед моей навигационной панели. Он должен появляться за панель навигации.

Это метод для вызова его:

self.mediaVC = [[PDMediaViewController alloc] init]; 
    self.mediaVC.mediaScrollView.manualMedia = YES; 
    self.mediaVC.mediaScrollView.mediaDelegate = self; 
    self.mediaVC.mediaScrollView.currentMediaItem = 0; 

    self.mediaVC.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; 
    [self presentModalViewController:self.mediaVC animated:YES]; 
+0

не подкласс UINavigationController (если вы * действительно * не знаете, что вы делаете!) –

ответ

1

Большую часть времени вы не подкласс UINavigationController. Вместо этого вы создаете подклассы UIViewControllers, а затем используете обычный экземпляр UINavigationController для обработки ваших контроллеров.

MyViewController *firstViewController = [[MyViewController alloc] init]; 
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:firstViewController]; 
[window addSubview:navController.view]; 

Проверьте шаблон контроллера навигации в XCode.

+0

Таким образом, в классе, где я называю это, я должен дать ему свойства, как полупрозрачную панель навигации каждый раз? – Andrew

+0

Да. Или в режиме просмотра контроллера ViewWill/DidDisplay. – DrummerB

0

Не подклассы UINavigationController!

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

http://developer.apple.com/library/ios/#documentation/uikit/reference/UINavigationController_Class/Reference/Reference.html