Ответ 1
Щелкните правой кнопкой мыши ярлык и подключитесь к сцену контроллера View.
Пожалуйста, взгляните на изображение ниже и помогите мне найти владельца файла для этого класса.
В общем, я бы подключил к нему UILabel, но, увы, я не могу его найти.
Вопрос: К чему я должен подключить свой ярлык?
Раскадровка:
Между тем класс устанавливается как
Щелкните правой кнопкой мыши ярлык и подключитесь к сцену контроллера View.
Поскольку раскадровки не имеют владельца, вы можете использовать View Controller вместо этого.
Нажмите Ctrl (или щелкните правой кнопкой мыши) на ярлыке, перетяните синюю линию, чтобы подключиться к оранжевому контроллеру просмотра.
Вы указали пальцем на ключевое различие между раскадройками и наконечниками: при загрузке ниба указывается экземпляр владельца, но раскадровка не загружается владельцем, поэтому в раскадровке нет владельца файла. Ваш экземпляр ViewController создается раскадровкой и проксируется в сцене (указан как контроллер просмотра), поэтому вы можете связать это соединение с элементом интерфейса. Но если вы хотите сформировать соединение с уже существующим экземпляром, не представленным в раскадровке, вам придется идентифицировать этот экземпляр каким-либо другим способом (возможно, с помощью тега) и найти его и время выполнения и сформировать соединение в коде после загрузка раскадровки.
Например, в этом коде я вручную загружаю раскадровку (чтобы использовать ее начальную сцену в popover), а затем формировать соединения с некоторыми элементами панели в ней:
UINavigationController* nav =
(UINavigationController*)[[UIStoryboard storyboardWithName:@"Storyboard"
bundle:nil]
instantiateInitialViewController];
// there is no file owner...
// so we can't just draw the connection from button items to ourself,
// because we are not proxied in the storyboard
// so, locate the button items in some other way and do it in code
UIViewController* root = [nav.viewControllers objectAtIndex: 0];
[root.navigationItem.leftBarButtonItem setTarget:self];
[root.navigationItem.leftBarButtonItem setAction:@selector(save:)];
[root.navigationItem.rightBarButtonItem setTarget:self];
[root.navigationItem.rightBarButtonItem setAction:@selector(cancel:)];
В некоторых случаях есть трюк, который вы можете использовать для ввода произвольного существующего экземпляра в сцену, чтобы соединение с ним работало: сделайте этот экземпляр первым ответчиком. В каждой сцене есть первый ответчик-прокси, поэтому это может дать вам что-то, что можно подключить, рисуя внутри раскадровки. Таким образом, этот код мог бы работать вместо вышеперечисленного:
[self becomeFirstResponder];
UINavigationController* nav =
(UINavigationController*)[[UIStoryboard storyboardWithName:@"Storyboard"
bundle:nil]
instantiateInitialViewController];
(И действия с действием кнопки были нарисованы в сцене с каждой кнопки на первый прокси-объект ответчика.)
Меню: Навигация - Отображение в Навигаторе проектов В Навигаторе проектов нажмите "Основная раскадровка", Меню: просмотр - Показать помощник редактора У вас должен быть Раскадровка слева с вашей меткой, а текст view controler.h справа. Нажмите на свой ярлык, удерживайте кнопку управления и перетащите синюю линию в исходный код View Controler.h справа. Введите имя ссылки (например, myLabel) и нажмите "Подключиться".
Автоматически вы увидите нечто подобное: @property (слабый, неатомный) IBOutlet UILabel * myLabel;
Внутри View Controler.m вы увидите нечто подобное: @synthesize * myLabel;
Внутри событий IBAction вы можете установить метку: myLabel.text =