2016-10-26 9 views
1

私のnavigationBarnextVcという名前のUIBarButtonItemを作成し、そのアクションをnextVc.action = #selector(self.gotoVC4)で設定しますが、動作しません。storyboardで作成されたUIBarButtonItemにアクションを追加する方法は?

私のコードは以下の通りです:

class ViewController3: UIViewController { 

    @IBOutlet weak var nextVc: UIBarButtonItem! 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     nextVc.action = #selector(self.gotoVC4) 

    } 

    func gotoVC4() -> Void { 


     print("go to vc4") 

     let vc4 = ViewController4() 
     self.navigationController!.pushViewController(vc4, animated: true) 

    } 


} 

とストーリーボードの画像はこちら:

the storyboard shootscreen

+3

ストーリーボードがあるので、バーボタンから「View Controller 4」シーンにCtrl +ドラッグするだけで、セグを作成できます。コードは不要 – Paulw11

+0

通常のUIButtonと同じように、BarButtonItemの__IBAction__を作成することができます。 – Adeel

+0

@Paulwあなたの答えは正しい、より多くのコードは必要ないので、我々はより便利に行動を追加することができます! – aircraft

答えて

1

あなたはセグエを作成するには、「ビュー・コントローラ4」シーンにバーボタンからストーリーボード、単にCTRL-ドラッグを持っているので。コードは必要ありません。

0
  1. あなたは
  2. 方法はdynamicあるべきselector式でselfを省略することができますまたは@objc

    override func viewDidLoad() { 
        super.viewDidLoad() 
    
        nextVc.action = #selector(gotoVC4) 
    } 
    
    dynamic func gotoVC4() -> Void { 
        print("go to vc4") 
    
        let vc4 = ViewController4() 
        self.navigationController!.pushViewController(vc4, animated: true) 
    } 
    
関連する問題