Как я могу получить пользовательский UIControl для участия в segue в качестве push-действия?

У меня есть пользовательский класс, который наследуется от UIControl, чтобы получить события касания. Это в основном набор других элементов управления, который действует как один. Я конвертирую свое приложение из xibs в раскадровку. Это было в основном безболезненно, кроме этого.

Я перетаскиваю UIView в свою сцену, меняю класс на свой пользовательский элемент управления, подключаю его к выходам на моем ViewController. То, что я хочу сделать с элементом управления при щелчке, выполняет (push) segue на другой ViewController. Но выходы в дизайнере не для моего UIControl, чтобы настроить сеанс.

Можно ли это сделать? Если да, что мне делать с классом, чтобы включить это?

Ответ 1

Я так не думаю. Глядя на панель "Инспекторы подключений", экземпляры UIButton и UIBarButtonItem получают специальную обработку - дополнительное действие "сработал segues", которое вы можете подключить к контроллерам смежных представлений:

UIButtons can trigger segues

При изменении класса представления к потомку UIControl делает доступным стандартный пакет управляющих событий, к сожалению, Interface Builder не позволяет вам подключать сеанс. Лучшее, что вы можете сделать, это создать вручную сгенерированный сеанс от вашего контроллера представления к другому, а затем подключить свой настраиваемый элемент управления к методу IBAction, который выполняет программный переход:

- (IBAction)performManualSegue:(XYZCustomControl *)sender
{
    [self performSegueWithIdentifier:@"manualPushSegue" sender:sender];
}

IBAction for manually triggering segue