2009-07-01 2 views
2

Я занимаюсь обучением iPhone приложений за последние две недели. Я получил много контента, и теперь я пытаюсь создать модальное всплывающее меню с presentModalView.Как вы используете интерфейс Builder для правильного управления UINavigationControllers?

Я могу успешно создавать и перемещать представление, но я замечаю, что модальные представления не предоставляют вам панель навигации по умолчанию в верхней части окна, что имеет смысл для гибкости, я думаю. Большинство модальных просмотров, которые я видел, имеют кнопки «Отмена» и «Готово» или «Сохранить» в качестве элементов навигации, которые выглядят как UINavigationController. Моя мысль тогда заключалась в том, чтобы создать экземпляр навигационного контроллера и нажать один вид на стек контроллера представления и представитьModalView: navController.view ...

Поскольку представление относительно сложное, я пытался выложить как UINavigationController , с помощью кнопок на панели и вид, который я надеялся наложить на стек в одном xib - независимо от того, что я пытаюсь, я не могу понять, что ссылки правильны. Можете ли вы это сделать? Или я должен создать отдельный класс/xib для представления, которое я собираюсь нажать на контроллер навигации? Кажется, что много классов и файлов для одного экрана, поэтому я чувствую, что мне что-то не хватает.

На этом этапе я мог бы сделать это программно около полутора лет назад ... однако, это настоящий вор, так как IB кажется БОЛЬШИМ для некоторых вещей. У кого-нибудь есть опыт в такой ситуации?

Спасибо, Джоша

ответ

1

Если вы не собираетесь использовать этот новый XIB для навигации, нет смысла в навигации контроллера.

В построителе интерфейса просто перетащите UINavigationBar в начало вашего представления и добавьте кнопку «Готово». Теперь добавьте IBAction к кнопке done, чтобы отклонить контроллер вида. Ваш код ViewController для отклонения IBAction должен выглядеть примерно так:

-(IBAction)dismiss { 
    //Any logic before dismissing the modal view 
    [super dismissModalViewControllerAnimated:YES]; 
} 
+0

Ah - duh! Благодарю. Думаю, с тех пор, как я начал с концепции контроллера навигации, застрявшей у меня в голове, это имело больше смысла. Единственное, что я собираюсь сделать, это попытаться придерживаться шаблона, который должен был отклонить контроллер вида, который представил модальный вид. Поэтому вместо использования прямого IBAction я собираюсь реализовать протокол и использовать делегат (родительский) для вызова увольнения. Не уверен, почему, но Apple говорит, что это лучшая практика ... – Josh

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