“ - [UIBarButtonItem selectedSegmentIndex]:无法识别的选择器发送到实例”用于顶级UIBar中的分段控制

时间:2017-11-20 21:41:48

标签: swift crash uibarbuttonitem uisegmentedcontrol ibaction

我正在使用Swift 4.我在顶部UINavigationBar右侧有一个分段控件,如下所示:

segmented control on UIBar

当我从故事板创建一个插座到我的代码时,默认情况下它希望它是UIBarButtonItem,但对于我的操作,我无法访问selectedSegmentIndex而不将其设为UISegmentedControl

所以我这样做我的出口:

@IBOutlet weak var saveAsControl: UISegmentedControl!

我的行动,作为测试,是:

@IBAction func saveAsTypeAction(_ sender: Any) {

    print("tapped")

    switch saveAsControl.selectedSegmentIndex
    {
    case 0:
        print("video selected")
    case 1:
        print("gif selected")
    default:
        break;
    }

}

如果我点击分段控件,调试器会崩溃并显示消息:

  

-[UIBarButtonItem selectedSegmentIndex]:无法识别的选择器已发送到实例

所以我不知道如何让分段控件正常工作。好像它与UINavigationBar有关,但我不知道它为什么会出问题。

1 个答案:

答案 0 :(得分:1)

你可能错误地连接了你的网点。这是正确的设置:

Segmented control - correct setup

View hierarchy

请注意,插座和操作都连接到分段控件而不是条形按钮本身。