2017-09-15 17 views
0

私はちょうど上に戻るボタンでセグを実行したいです。ナビゲーションコントローラでsegueを実行するには?

@IBAction func onFirst(_ sender: UIButton) { 
    performSegue(withIdentifier: "firstSegue", sender: self) 
} 
@IBAction func onSecond(_ sender: UIButton) { 
    performSegue(withIdentifier: "secondSegue", sender: self) 
} 
+0

する必要がありますあなたのストーリーボードに行く 'viewController'を選択し、メニューバーで 'Editor> Embed In> Navigation Controller'をクリックしてください – rudydydy

答えて

0

あなたは、あなたが2つのビュー・コントローラ、ViewControllerOneとViewControllerTwoを持っているとしましょう、あなたの現在のナビゲーション項目

self.navigationItem.leftBarButtonItem?.target = self 
    self.navigationItem.leftBarButtonItem?.action = #selector(self.onFirst(_:)) 
0

のためにターゲットとアクションを再定義する必要があります。

プログラムで行うことも、ストーリーボードを使用することもできます。

あなたは@IBOutletを使用しているようですので、私はあなたがストーリーボードを使ってやりたいと思っています。

まず、Main.storyboardを開いて、ViewControllerOne(セグメンテーションするコントローラ)がナビゲーションコントローラに組み込まれていることを確認します。

そうでない場合は、View Controllerをクリックし、トップメニューバーのEditorをクリックし、Embed Inに移動してNavigation Controllerを選択します。

次にあなたがViewControllerOneの上部にある小さな黄色のアイコンをクリックしてください+制御を行うことにより、インターフェイスビルダーを使用してセグエを作成することができます(ないナビゲーションコントローラ)Interface BuilderでViewControllerTwoに&ドラッグ。

今作成したセグをクリックして、属性インスペクタで選択したidentifierと入力します。

あなたが述べたようにその後、あなたのViewControllerOneクラスで、あなただけの@IBOutletを使用してセグエを実行することができます。

@IBAction func onFirst(_ sender: UIButton) { 
    performSegue(withIdentifier: "your_segue_identifier", sender: self) 
} 

念セグエ識別子が一致することを確認し、すべてが正常:)

関連する問題