Как связать представления Интерфейсного Разработчика - PullRequest
2 голосов
/ 12 марта 2010

Я пытаюсь выяснить, как связать все представления, которые я сделал в конструкторе интерфейсов, с контроллером навигации, но я нахожу концепцию немного сложной для понимания.

Весь пример кода, который я посмотрел, показывает, как это сделать с массивами, в которых хранятся все ваши контроллеры, и мне трудно адаптироваться к моему проекту, поскольку мои представления полностью построены в IB, а не в xCode.

спасибо заранее.

1 Ответ

2 голосов
/ 12 марта 2010

Вообще говоря, контроллер навигации поддерживает стек контроллеров представления, на которые вы нажимаете и извлекаете. Если вы используете IB при перетаскивании контроллера навигации из библиотеки в окно приложения, он фактически добавит ряд объектов, включая UIViewController, который будет действовать как контроллер корневого представления. Измените класс этого корневого контроллера представления на класс вашего первого контроллера представления.

Вы можете создать дополнительные контроллеры представлений (я бы поместил эти другие контроллеры представлений в отдельные файлы NIB), которые вы затем помещаете в стек контроллеров представлений, когда хотите сделать их видимыми. Вам не нужно связывать их с контроллером навигации в IB.

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

DetailViewController *viewController = [[DetailViewController alloc]    
            initWithNibName:@"DetailView" bundle:nil];

viewController.someAttribute = someValue;

[[self navigationController] pushViewController:viewController animated:YES];
[viewController release];

Если вы используете UITableViewControllers, вы можете поместить этот код в метод didSelectRowAtIndexPath: indexPath, чтобы новый контроллер представления появлялся, когда пользователь выбирает строку в таблице.

Контроллер навигации позаботится о срабатывании контроллера верхнего вида, когда пользователь нажмет кнопку «Назад», или вы можете открыть его самостоятельно, вызвав popViewControllerAnimated:

[[self navigationController] popViewControllerAnimated:YES]  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...