可以在Swift中获取UIBarButtonItem的SystemItem吗?

时间:2019-04-27 21:32:55

标签: swift uikit uibarbuttonitem

我在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 :(得分:0)

您可以使用

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

并为每个按钮设置一个不同的标签