2017-11-20 20 views
0

を私はそうのようなトップUINavigationBarの右側にセグメント化されたコントロールを持っているスウィフト4を使用しています:「 - [UIBarButtonItem selectedSegmentIndex]:認識されていないセレクタがインスタンスに送信され、」トップUIBarにセグメント化された制御用

segmented control on UIBar

ストーリーボードから自分のコードにコンセントを作成すると、デフォルトではUIBarButtonItemになりますが、私の行動ではにすることなくselectedSegmentIndexにアクセスすることはできません。

だから私はこのように私の口を作る:

@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

あなたのアウトレットが間違っている可能性があります。 出口の両方とアクションは、セグメント化されたコントロールではなくバーボタン自体に配線されていることを

Segmented control - correct setup

View hierarchy

注:ここでは、正しいセットアップがあります。

+0

ありがとうございました。私は、セグメント化されたコントロールの代わりにバーボタンアイテムを接続しているに違いありません。 – VagueExplanation

関連する問題