программно вызвать уже установленное действие UIBarButtonItem - PullRequest
0 голосов
/ 27 ноября 2018

Я создаю то, что, по моему мнению, будет действительно приятным набором автоматизированного тестирования для iOS.Тем не менее, мне нужно иметь возможность вызвать ранее установленное действие для любого данного UIBarButtonItem.По отладчику я могу сказать, что я на самом деле имею дело с UIButton, но недели, когда я пытался найти разные пути к этому действию, потерпели неудачу.Если кто-то может понять, как вызвать этот селектор, я был бы очень рад.

Опять же, я не хочу задавать действие, я хочу вызвать действие, которое уже задал кто-то другой.

1 Ответ

0 голосов
/ 27 ноября 2018

Я думаю, что вы ищете что-то вроде следующего.

for rightButton in navigationItem.rightBarButtonItems ?? [] {
    if let target = rightButton.target,
        let selector = rightButton.action {
        target.perform(selector)
    }
}

В настоящее время он циклически перебирает элементы кнопок правой панели, и для каждого элемента он собирает target и selector.Если они уже установлены, просто выполните это selector после этого target.

Вы можете сделать это для элементов левой кнопки.

...