2010-12-01 4 views
1

Мое приложение имеет два режима отображения. В делегате приложения есть контроллер панели вкладок. Есть два вкладки, оба из которых используются подклассами. Два контроллера обзора по существу содержат контроллер nav каждый. Контроллеры навигации имеют свой корневой контроллер, и, как правило, при смене экранов я просто нажимаю и поп-контроллеры соответствующего навигационного контроллера. У этого есть (нормальный) эффект, что нижняя панель вкладок всегда видна, все здорово и здорово.Проблема с «Представление контроллера по модулю внутри контроллера навигации в контроллере панели вкладок»

Это одно и то же время, когда я хотел бы представить экран, однако, чтобы пользователь не мог ничего сделать, кроме подтверждения или отмены страницы, используя две кнопки, то есть я хочу скрыть также нижнюю панель вкладок. Это будет случай представления представления, как я думал, но представление представлено в пределах контроллера навигатора, похоже, поэтому нижняя панель вкладок все еще видна, и это вызывает путаницу в навигации приложения. Я не уверен, как возможно, что модально представленное представление не скрывает панель вкладок. Большинство вопросов вокруг здесь, похоже, имеют проблему наоборот (желая (неправильно) представить модальное представление и оставить видимым панель вкладок).

Это мои попытки:

[self presentModalViewController:controller animated:YES]; // inside tab bar controller :-(
[self.tabBarController presentModalViewController:controller animated:YES]; // nothing is displayed. The new controller is instantly deallocated. 
[self.navigationController presentModalViewController:controller animated:YES]; // inside tab bar controller :-(

Следственные это, self.tabBarController фактически равна нулю. Кажется, что нет ссылки на контроллер панели вкладок ... Думаю, чтобы отображать модально поверх панели вкладок, мне нужно получить ссылку на этот контроллер панели вкладок?

ответ

1

Я, кажется, нашел решение, я не уверен, что это кошерный, потому что каким-то образом я не смог использовать указатель self.tabBarController контроллера вида, в котором я запускаю вызов контроллера вида.

То, что я сделал, было доступно для делегата приложения, делегат приложения имеет контроллер панели вкладок, определенный как публичное свойство. Я мог бы использовать это свойство контроллера панели вкладок, чтобы модно отображать мой контроллер представления над всем на экране.

+0

Это единственный способ, которым я нашел это. Оттуда вы можете добавить subview в окно, а не напрямую обращаться с контроллером панели вкладок, поскольку [window addSubview: yourModalViewController.view]; который появляется после добавления вашей вкладки, выведет его вперед. – 2010-12-01 03:30:59

Смежные вопросы