Панель навигации как модальный вид? - PullRequest
0 голосов
/ 23 марта 2011

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

+----------------------------+
| |Cancel|   Title    |Done| |
+----------------------------+
|                            |
|             ...            |
+----------------------------+

В IB код имеет следующую иерархию:

+ File's Owner
+ First Responder
+ Nav Controller
  + Nav Bar
  + View Controller
    + View
    + Nav Item
      + Bar Button
      + Bar Button

Создание View равным узлу Nav Controller не помогло. Поэтому я оставил View как дочерний узел Nav Controller.

При нажатии кнопки я вызываю следующее:

FilePicker* picker = [[FilePicker alloc] init];
[self presentModalViewController:picker animated:YES];

Для полноты вот объявление FilePicker (лишние виджеты удалены из-за устранения неполадок). Добавление / удаление UINavigationControllerDelegate не помогает.

@interface FilePicker : UIViewController
  <UIPickerViewDelegate, UIPickerViewDataSource>
{
  UINavigationController* navController;
}

@property (retain, nonatomic) IBOutlet UINavigationController* navController;

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

Ответы [ 2 ]

1 голос
/ 23 марта 2011

перед представлением модального представления создайте объект контроллера навигации, установив корневой контроллер в представление выбора файлов.Затем отобразите контроллер навигации как модальное представление.(извините за форматирование ... кнопки форматирования в редакторе не отображаются)

PickerView *pv = [[PickerView alloc] initWithNibName:@"PickerView" bundle:nil];
pv.ivar1 = value1;

UINavigationController *nc = [[UINavigationController alloc] initWithRootViewController:pv];

[self.tabBarController presentModalViewController:nc animated:YES];
[nc release];
[pv release];
0 голосов
/ 24 марта 2011

Я неправильно использовал механизм: если я использую UIViewController с панелью навигации и панелью выбора, все работает как положено. Я не должен был использовать Nav Controller.

Итак, мое мнение таково:

+ File's Owner
+ First Responder
+ View
  + Picker
  + Nav Bar
    + Nav Item
      + Bar Button
      + Bar Button
...