是否有可能在Swift中获取UIBarButtonItem的SystemItem?

问题描述 投票:0回答:1

我在UIBarButtonItem有一堆UIToolbars。其中每个都在Storyboard中设置了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)
}

如果有更好的方法来区分UIBarButtonItems,我会全神贯注。

swift uikit uibarbuttonitem
1个回答
0
投票

您可以使用

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

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

© www.soinside.com 2019 - 2024. All rights reserved.