2016-11-18 13 views
1

ピッカービューでオプションを選択すると、関連するページに移動するピッカービューとボタンを作成しようとしています。次のページに移動するボタン付きピッカービュー

これまでのところ、ピッカービューでオプションを選択すると関連するページが表示されますが、選択してボタンをクリックするとページに移動します。

import UIKit 

class ViewController: UIViewController, UIPickerViewDataSource, UIPickerViewDelegate { 

    @IBOutlet weak var pickerView: UIPickerView! 

var selection = ["Page 1", "Page 2", "Page 3"] 


override func viewDidLoad() { 
    super.viewDidLoad() 

    pickerView.dataSource = self 
    pickerView.delegate = self 


} 

@IBAction func SelectionBtn(_ sender: Any) { 

    } 



func numberOfComponents(in pickerView: UIPickerView) -> Int { 
    return 1 
} 

func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { 
    return selection.count 
} 

func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? { 
    let selected = selection[row] 

    return selected 
} 

func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { 



    if (row == 0) { 

    performSegue(withIdentifier: "red", sender: self) 
    } 
    else if (row == 1) { 

    performSegue(withIdentifier: "blue", sender: self) 
    } 
    else { 
    performSegue(withIdentifier: "green", sender: self) 

     } 
    } 
    } 
+0

あなたが問題を解決することができましたか? –

答えて

1

追加の変数を使用して、選択した行に関する情報を保存します。

var rowSelected:Int! = -1 

選択した行をこの変数に格納します。

func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { 
rowSelected = row 
} 

ボタン操作中に、変数をチェックして目的のSegueを実行します。

@IBAction func actSegue(sender:Any){ 
    if row == 0 { 
     performSegue(withIdentifier: "red", sender: self) 
    }... 
    .... 
} 
0

あなたは行が選択して取得することができます。pickerView.selectedRow(inComponent: 0)

@IBAction func SelectionBtn(_ sender: Any) { 
let rowSelected = pickerView.selectedRow(inComponent: 0) 
if (rowSelected == 0) { 

performSegue(withIdentifier: "red", sender: self) 
} 
else if (rowSelected == 1) { 

performSegue(withIdentifier: "blue", sender: self) 
} 
else { 
performSegue(withIdentifier: "green", sender: self) 

    } 
}