Как использовать Interface Builder для правильного управления UINavigationControllers?

StackOverflow https://stackoverflow.com/questions/1071774

Вопрос

Последние две недели я учился создавать приложения для iPhone.Я просмотрел достаточное количество контента и теперь пытаюсь создать модальное всплывающее окно с помощью PresentModalView.

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

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

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

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

Это было полезно?

Решение

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

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

-(IBAction)dismiss {
    //Any logic before dismissing the modal view
    [super dismissModalViewControllerAnimated:YES];
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top