#ios #xcode #ipad #uiviewcontroller #modal-dialog
#iOS #xcode #iPad #uiviewcontroller #модальный диалог
Вопрос:
Я пытаюсь понять фундаментальную концепцию ViewControllers. Для моей цели мне нужно переключать XIBS (не модально), а полностью, чтобы сэкономить память. По сути, я хочу вызвать другой XIB и использовать его функции, а затем, нажав кнопку на этом XIB, загрузить другой XIB.
-(IBAction)GoToPage:(id)sender
{
GoToPage *gotopage = [[[GoToPage alloc] init] autorelease];
[self presentModalViewController:gotopage animated:YES];
}
Я знаю, что приведенный выше код просто модально добавляет подпредставление. Может ли кто-нибудь направить меня в правильном направлении, как я мог бы это сделать?
Это для книги для iPad.
Ответ №1:
Я бы посоветовал прочитать руководство по программированию контроллера просмотра Apple для iOS, чтобы получить четкое представление о назначении контроллеров просмотра.
В качестве краткого обзора контроллер просмотра обычно отвечает за управление одним «полным экраном» содержимого на устройстве размером с телефон или частью экрана на iPad, поскольку на iPad можно использовать несколько контроллеров просмотра, например UISplitViewController
. Если вы хотите анимировать между полноэкранными контроллерами просмотра на iPad, вы можете использовать a UINavigationController
, который управляет иерархией контроллеров просмотра. Вы не упоминаете, что GoToPage
наследуется от, будь то UIView
или UIViewController
. В вашем случае это должен быть подкласс UIViewController
.
Использование a UINavigationController
позволит вам управлять несколькими UIViewController
подклассами, сохраняя иерархию в такте, чтобы пользователь мог вернуться к предыдущим контроллерам представления. Вы бы использовали -pushViewController:animated:
для отправки нового экземпляра вашего подкласса view controller в стек view controller контроллера навигации, и UINavigationController
в большинстве случаев переход обратно обрабатывается автоматически.
XIB просто инкапсулирует пользовательский интерфейс, а не какой-либо пользовательский код. Прокси-сервер владельца файла XIB должен быть установлен на ваш UIViewController
подкласс, что позволяет вам преодолеть разрыв между элементами интерфейса на XIB и кодом внутри вашего UIViewController
подкласса за счет использования IBOutlet
и IBAction
свойств вашего подкласса.
Наконец, если вы ориентируетесь только на iOS 5.0, я бы рекомендовал изучить UIPageViewController
, который управляет несколькими контроллерами просмотра и позволяет переходить между ними с помощью анимации перелистывания страниц, подобной iBooks. Прежде всего, прочитайте руководство по программированию контроллера просмотра 1
Комментарии:
1. Ссылка недоступна — пожалуйста, исправьте