Как я могу получить доступ к информации systemItem параметра отправителя функции подготовить для перехода? - PullRequest
0 голосов
/ 19 мая 2019

Разматывая последовательность, я использую функцию prepare(for:sender:), чтобы определить, какая кнопка была нажата для запуска некоторого кода на основе результата; информация должна быть доступна в параметре sender, но я не могу прочитать необходимую информацию, хотя вижу, что необходимая информация будет там (systemItem = Save) при проверке отладчика.

Отладчик показывает мне содержимое «отправителя»: (lldb) po sender ▿ Необязательно - some: target = 0x600002e6aec0 action = execute: systemItem = Save

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    // Get the new view controller using segue.destination.
    // Pass the selected object to the new view controller.
    print("prepare called")
}

Что я ожидал бы, так это то, что я могу проверить, была ли нажата кнопка «Сохранить», и выполнить некоторый код, если это правда; Как мне получить необходимую информацию?

1 Ответ

0 голосов
/ 20 мая 2019

Вы не можете получить информацию о кнопке от prepareForSugue... func, потому что это не цель.Если вы хотите получить информацию о нажатой кнопке, вы можете добавить цель к своей кнопке с передачей параметра отправителя, например:

button.addTarget(self, #selector(handlePress(_:)))


@obj private func handlePress(_ sender: UIButton) {        
     // Do your logic here with button then
   self.perform(segueWithIdentifier: String)

}

PrepareForSegue метод будет вызываться автоматически после вызова preform(segue...) func

...