Невозможно связать UIViewController IBOutlets с StoryBoard

У меня есть два UIViewController (A и B) в раскадровке. Контроллер представления A имеет свойство

@property (nonatomic, retain) IBOutlet UIViewController *viewController;

что я хочу связать через раскадровку с B.

Розетка отображается в разделе IBOutlets в меню раскадровки, но я не могу сделать ссылку. Может показаться странным, почему я пытаюсь это сделать, но мне это нужно. Кто-то знает, как это сделать?


person Raphael Oliveira    schedule 08.01.2013    source источник
comment
IBOutlets обычно слабые и не сохраняют.   -  person toasted_flakes    schedule 08.01.2013


Ответы (3)


IBOutlets — это соединения внутри одного контроллера представления. Создайте ссылки на объекты внутри контроллера представления, чтобы вы могли использовать эти объекты в коде.

Вы не можете создавать IBOutlets с одного контроллера представления на другой. Свойство — правильный путь, но вы должны присвоить свойство в коде. Обычно, когда один контроллер представления создает другой, он может установить ссылку на самого себя.

OtherViewController *otherViewController = [OtherViewController alloc] init];
otherViewController.masterViewController = self;
// at this point "otherViewController" has a reference to the current view controller
person DBD    schedule 08.01.2013
comment
Что, если у меня есть родительский контроллер представления, дочерний элемент которого я могу определить во время сборки? - person LOP_Luke; 16.09.2016

Теперь я понимаю, что мне нужно делать. Мне нужно создать пользовательский переход для достижения тот же результат, что и при связывании UINavigationController с другим ViewController и пометке как RootViewController. Это делается переходом, а не IBOutlet.

person Raphael Oliveira    schedule 08.01.2013

Я немного опаздываю на вечеринку, однако я собрал класс перехода, чтобы помочь с этой работой. Просмотрите репозиторий git, чтобы увидеть класс в действии: https://github.com/datinc/DATOutletSegue.

В основном он использует идентификатор перехода для подключения к родительскому контроллеру.

person datinc    schedule 05.02.2014