繁体   English   中英

如何使用UIPickerview在两个ViewController之间导航

[英]How to navigate between two viewcontrollers using a UIPickerview

我试图使用UIPickerview在两个viewcontrollers之间导航,所以我首先学习了如何使用didSelectRow来更改标签的标题,然后我尝试使用一些代码导航至另一个viewcontroller,但这没有用。

我使用的代码是:

import UIKit

class ViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource {

@IBOutlet var label: UILabel!

@IBOutlet var pickerView: UIPickerView!
var food = ["hello", "hi", "hey"]

var placementAnswer = 0
override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.

    pickerView.delegate = self
    pickerView.dataSource = self


}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.

}

public func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {

    return 1
}
public func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {

    return food.count 
}

func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {

    return food[row]
}

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

@IBAction func labelChanged(sender: UIButton) {

    if (placementAnswer == 0){

    }else if (placementAnswer == 1){

        let view2 = self.storyboard?.instantiateViewControllerWithIdentifier("view2") as! ViewController2
        self.navigationController?.pushViewController(view2, animated: true)

    }else if (placementAnswer == 2){
}
}
}

正如paranoidcoder指出的那样,我不确定您的labelChanged方法是否被调用,这可能是您现有代码的问题。

我假设您要在选择器视图中选择某一行后更改视图控制器。 在这种情况下,将if语句放在didSelectRow中更改视图将是最有意义的。

func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) 
 {
     placementAnswer = row // unnecessary variable

     if (placementAnswer == 0){}
     else if (placementAnswer == 1)
     {
        let view2 = self.storyboard?.instantiateViewControllerWithIdentifier("view2") as! ViewController2
        self.navigationController?.pushViewController(view2, animated: true)
     }
     else if (placementAnswer == 2) {}
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM