Можно ли получить SystemItem UIBarButtonItem в Swift? - PullRequest
0 голосов
/ 28 апреля 2019

У меня есть куча UIBarButtonItem с в UIToolbar. Каждый из них имеет свой SystemItem установленный в раскадровке, так что они будут выглядеть как системные иконки.

Я бы предпочел не делать IBAction для каждого из них, поэтому мне нужен какой-то способ дифференцировать их в операторе switch. Я предполагаю, что лучший способ сделать это - посмотреть на их SystemItem, так как это единственное свойство, которое делает их уникальными друг от друга.

Вот что у меня так далеко:

@IBAction func buttonPressed(_ sender: UIBarButtonItem) {
    let controller = UIImagePickerController()
    controller.delegate = self

    switch sender.[WHAT DO I PUT HERE?] {
    case .compose:
        controller.sourceType = .photoLibrary
    case .camera:
        controller.sourceType = .camera
    default:
        break
    }

    present(controller, animated: true)
}

Если есть лучший способ провести различие между UIBarButtonItem с, я весь слух.

1 Ответ

0 голосов
/ 28 апреля 2019

Вы можете использовать

switch sender.tag {
case 0 :
    controller.sourceType = .photoLibrary
case 1 :
    controller.sourceType = .camera
default:
    break
}

и установите разные метки для каждой кнопки

...