Хорошо, я действительно хочу изменить вкладку, когда пользователь нажимает кнопку во всплывающем окне AlertView.
Мой пользовательский FirstViewController создает AlertView и устанавливает себя в качестве делегата. Я хочу, чтобы FirstViewController предпринял некоторые действия, но затем я также хочу изменить вкладку в интерфейсе представления вкладок. FirstViewController вообще не знает об интерфейсе вкладок. Я мог бы добавить соединение, чтобы FirstViewController знал об этом, но мне это кажется не элегантным.
То, что я хотел бы сделать, это определить исходящее действие в FirstViewController и иметь возможность подключить его в Интерфейсном Разработчике к IBAction для какого-либо объекта вне FirstViewController, который знает об интерфейсе вкладки, может быть, мой делегат приложения, возможно, другой пользователь просмотр контроллера у меня называется MenuViewController. Затем я бы вызвал его из FirstViewController alertView: clickedButtonAtIndex:
В своем коде я знаю, как создавать IBOutlets, исходящие соединения с другими объектами. Я знаю, как создавать IBActions, цели входящих действий, которые могут вызывать другие объекты. То, что я хочу, - это возможность создать «IBOutletAction», чтобы я мог указать на IBAction в другом объекте. UIControls так или иначе определяют «IBOutletActions», которые сообщают Интерфейсному Разработчику, какие события у них есть, которые могут быть связаны с IBActions других объектов. Могу ли я сделать то же самое, или это достигается для UIControls каким-то секретным моджо, который работает только для классов Apple? Если я не могу точно продублировать его, что вы посоветуете для простейшего приближения? Я могу определить действие -setTarget: (id) target forAction: (SEL) для FirstViewController и связать его в коде, но в идеале я хочу что-то, что можно установить в Интерфейсном Разработчике.