UINavigationController не отображает и не отображает вид - PullRequest
0 голосов
/ 08 августа 2011

Новое в iOS и цель C. Проблемы с пользовательским UINavigationController при разработке приложения для iPad в симуляторе XCode. Благодарим Вас за помощь!

  1. Создан проект (приложение на основе представления) в XCode. Приложение в настоящее время имеет два представления. Домашняя страница и подробный вид. Вам нужна домашняя страница, например, Facebook или домашняя страница приложения Linkedin для iPhone ... где у вас есть куча иконок / изображений на главной странице, и нажмите на каждую, чтобы получить более подробную информацию

  2. (С ограниченным знанием) заключенная Домашняя страница не может быть TableView, SplitView или TabBarView. Не хотите никаких вкладок или стиля представления таблицы на домашней странице (как объяснено выше). Не удалось запустить проект XCode с шаблоном «Приложение на основе навигации»

  3. Не добавлены элементы пользовательского интерфейса из IB в MainWindow.xib, элементы пользовательского интерфейса домашней страницы rathar находятся в otherView.xib, созданном шаблоном проекта. Шаблон проекта, назначает rootViewController для другогоViewController в методе appDelegate.didFinishLaunchingWithOptions. self.window.rootViewController = otherViewController.

  4. Добавлен NavigationController через IB в otherView.xib. Добавлена ​​розетка для навигации контроллера. otherView.h имеет следующее UINavigationController *navigationController; @property (nonatomic, retain) IBOutlet UINavigationController *navigationController; referencingOutlet для navigationController подключен к владельцу файла

  5. При запуске приложения открывается домашняя страница (обслуживаемая другим ViewController). При нажатии на значок на домашней странице (ImageView с кнопкой позади), подробный вид не отображается, если я звоню

    [self.navigationController pushViewController:DetailViewController animated:YES]; (в методе действия он обрабатывает touchUpInside для этой кнопки.)

, но если я сделаю либо

, появится подробный вид

self.view = DetailViewController.view; или
[self.view addSubview:DetailViewController.view];

Так что, кажется, нет проблем с загрузкой DetailView, это нибфил и т. Д. Нет проблем также при нажатии кнопки / захвате события и т. Д.

A. Когда я проверяю навигационный контроллер в отладчике, в его стеке присутствуют оба viewController с корневой страницей / домашней страницей с индексом 0 и подробным представлением с индексом 1. навигационный контроллер не равен нулю. Есть идеи о том, что мне не хватает?

B. Нужно ли добавлять навигационную панель как на домашнюю страницу (в которой добавлен контроллер навигации), так и в подробном представлении? Я добавил навигационную панель в подробный вид. Мне не нужна панель навигации в интерфейсе домашней страницы.

C. Когда подробный вид отображается с помощью вызова addSubview или назначения self.view (как упомянуто выше), панель навигации не показывает кнопку возврата (которая должна сказать «Домой»). Оба представления Контроллер устанавливает соответствующий заголовок, используя self.Title = "Home" или "Detail".

Ценю вашу помощь. Спасибо

Ответы [ 2 ]

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

что вы тоже должны делать в вашем xib-файле, make sur, который вы просматриваете, находится в навигационном контроллере

дерево вашего xib-файла должно выглядеть так:

  • ваш appdelegate
  • окно
  • Контроллер навигации
  • панель навигации
  • и ваш rootview-контроллер
0 голосов
/ 08 августа 2011

В appDelegate необходимо сделать свойство контроллера навигации свойством и затем написать:

self.window.rootViewController = self.navigationController;

в приложении didFinishLaunchingWithOptions: метод. Затем вставьте otherViewController в его стек. Я думаю, что ошибка, которую вы совершаете, заключается в добавлении UINavigationController в UIView, а не наоборот, что является правильным способом!

...