2016-11-18 2 views
1

Ich versuche einen PickerView und einen Button zu erstellen, der bei Auswahl der Option in PickerView auf die entsprechende Seite geht.Picker-Ansicht mit Taste, um zur nächsten Seite zu gehen

Bis jetzt habe ich an den Punkt, wenn Sie die Option in der Auswahl Sicht wählen geht es auf die entsprechende Seite, aber was ich will, ist wählen und klicken Sie dann auf die Schaltfläche, um auf die Seite zu gehen.

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

waren Sie das Problem beheben können? –

Antwort

1

Nehmen Sie eine zusätzliche Variable, um Informationen darüber zu speichern, welche Zeile Sie ausgewählt haben.

var rowSelected:Int! = -1 

Speichern Sie die ausgewählte Zeile auf diese Variable.

Während der Tastenaktion die Variable überprüfen, um den gewünschten Segue durchzuführen.

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

Sie können die Zeile mit ausgewählten erhalten: 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) 

    } 
} 
Verwandte Themen