Разрыв на контроллере навигации

У меня есть кнопка на обзоре. Когда я нажимаю на него, он должен загрузить другое представление, одно с контроллером novigation. Пока что у меня есть это, кнопка вызывает этот метод:

-(IBAction)loadOptionsView:(id)sender {

     if (self.optionsRootController == nil) {

          //optionsRootController is declared as: UINavigationController *optionsRootController;
          optionsRootController = [[UINavigationController alloc] init];

          //Options is a UIViewController
          Options *myOptions = [[Options alloc] initWithNibName:@"OptionsMenu" bundle:nil];
          [optionsRootController pushViewController:myOptions animated:NO];
          [myOptions release];
     }

     [self.view addSubview:optionsRootController.view];

}

Что происходит, когда я нажимаю кнопку, так это то, что он загружает xib-файл OptionsMenu поверх текущего экрана, но есть пробел в верхней части размера строки состояния, поэтому я могу видеть представление ниже. Любая помощь? Как правильно загрузить новое представление, содержащее контроллер навигации?

Спасибо вам всем!


person Community    schedule 25.04.2009    source источник
comment
У вашего первого просмотра есть строка состояния? Может быть, будет полезен снимок экрана первого и второго просмотра.   -  person Jab    schedule 25.04.2009
comment
Я сам не добавлял строку состояния. У него та же строка состояния, что и в любом приложении по умолчанию.   -  person    schedule 25.04.2009


Ответы (3)


Я решил эту проблему, разместив после:

[optionsRootController pushViewController:myOptions animated:NO];

эта строка:

[optionsRootController.view setFrame: [self.view bounds]];

Легко и приятно!

person Community    schedule 26.04.2009

Я думаю, что назначенный инициализатор UINavigationController

  - (id) initWithRootController:(UIViewController *)rootController

Таким образом, ваш код выше был бы лучше выражен как

  //optionsRootController is declared as: UINavigationController *optionsRootController;

  //Options is a UIViewController
  Options *myOptions = [[Options alloc] initWithNibName:@"OptionsMenu" bundle:nil];
  optionsRootController = [[UINavigationController alloc] initWithRootController: myOptions];
  [myOptions release];
person Christian Brunschen    schedule 25.04.2009
comment
Результат тот же :( - person ; 25.04.2009

Подходит ли размер VIew в вашем наконечнике для всего экрана? Попробуйте отключить имитацию строки состояния в IB.

person Rog    schedule 25.04.2009