iOS: переписывание с nib на раскадровки

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

Приложение использует контроллер навигации для переключения между контроллерами представления (марка/модель/размер). Каждый контроллер представления содержит табличное представление со списком значений (марки/модели/размеры).

В версии xib в каждом контроллере представления у меня был уникальный метод инициализации, который принимал информацию от предыдущего контроллера представления (например, контроллер представления модели должен был знать, какая марка была выбрана, чтобы он мог отображать соответствующие модели; контроллер представления размера нужно знать, какая марка и модель были выбраны, чтобы он мог отображать соответствующие размеры). Кроме того, в пользовательской инициализации я бы вызвал initWithNibName.

Теперь, используя раскадровки, мы больше не вызываем initWithNibName и должны подключаться к awakeFromNib. Это отлично работает для контроллера представления make, поскольку он всегда будет отображать один и тот же список производителей, поскольку он является корневым контроллером представления в навигационном контроллере.

Где я застрял, так это в том, как продолжать использовать раскадровки и awakeFromNib, но передавать данные по пути (т. Е.: Отправлять выбранный make в контроллер представления модели, когда выбрана строка в табличном представлении контроллера представления).

Я надеюсь, что я имею смысл здесь.

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


person Ed Sinek    schedule 05.12.2012    source источник


Ответы (1)


В случае с раскадровками попробуйте

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender

метод. Его можно использовать для передачи любого сообщения/данных в targetViewController.

person Zen    schedule 05.12.2012