2017-05-26 14 views
0

ボタンがたくさんあるView Controllerがあります。これらのボタンのそれぞれを、以前に設定した変数に基づいて特定のView Controllerに分割しますプログラムで。言い換えれば、どのボタンも、ボタンを含むビューコントローラに送信された変数に基づいて、15個の異なるビューコントローラに移動する可能性があります。ボタンから複数のView Controllerをプログラムで分離する方法

クリックすると、 viewcontroller ...しかし、それは愚かで乱雑に思われます。

私はこのような何かやってみました:私は「AViewController」のストーリーボードのボタンをクリックしてドラッグすると

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
    if variable == "Whatever" { 

    let send = segue.destination as! AViewController 
     send.variablesent = (sender as! UIButton).title(for: .normal)!} 
} 

しかし、これだけで作品を。

ご協力いただきありがとうございます。そのために

+1

タグ付きの各ボタンを使用します。 &sはそれぞれをsender.tagで識別できます。 – Jack

答えて

2

あなたがperfromSegueコールにsenderとしてボタン参照を渡すあなたのボタンアクションでperfromSegueを呼び出すときには、その後、ButtonからControllerDestinationViewControllerSourceViewControllerからセグエを作る代わりにすることができます。

@IBAction func buttonAction(_ sender: UIButton) { 
    self.performSegue(withIdentifier: "segueIdentifier", sender: sender) 
} 

prepareForSegueキャストUIButtonへの送信者と、それに応じて設定されたタイトルインチ

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
    if variable == "Whatever" { 
     let send = segue.destination as! AViewController 
     if let button = sender as? UIButton { 
      send.variablesent = button.titleLabel?.text ?? "Default value" 
     } 
    } 
} 
+0

お返事ありがとうございます!私は "segueIdentifier"が何であるべきか、そして同じボタンから複数のViewControllerを得る方法を理解しようとしています。それはまだ私のためにクリックしていない。どんな方向に?ありがとう! – tfcamp

+0

私はこれを初めて勉強しましたが、あなたの答えを理解するのに十分な知識はありませんでした。今、私はそれを働かせて、今あなたの答えを理解しています。これは私が理解できなかったものをつなぐのに役立つガイドでした:https://stackoverflow.com/a/31086536/7729572 – tfcamp

+0

ようこそメイト:) –

関連する問題