使用Picker View选择要切换到的ViewController

时间:2017-06-21 03:02:13

标签: ios swift

我正在创建一个餐厅应用程序,用户可以在第一个屏幕上选择他们想要做的餐厅。在他们做出选择之后,用户应该按下开始按钮,它将把它带到那个视图控制器

我不知道如何开始,任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

在picker didselect delegate中设置标签文本。然后按钮动作方法决定在标签文本的基础上打开哪个vc。

答案 1 :(得分:0)

使用按钮操作是完成按钮,我们使用选择器嵌入以进行最终选择。

使用以下代码:正常工作

import UIKit

class PickerViewController: UIViewController,UIPickerViewDataSource, UIPickerViewDelegate {
    @IBOutlet weak var pickerVieww: UIPickerView!
    var viewControllerArray = [String]()
    var value = Int()
    override func viewDidLoad() {
        super.viewDidLoad()
        pickerVieww.delegate = self
        pickerVieww.dataSource = self
        viewControllerArray = ["controller1","controller2","controller3"]
    }
    func numberOfComponents(in pickerView: UIPickerView) -> Int {
        return 1
    }
    func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
        return viewControllerArray.count
    }
    func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
        return viewControllerArray[row]
    }
    func pickerView(_ pickerView: UIPickerView,didSelectRow row: Int,inComponent component: Int)
    {
        if(row == 0)  {
            value = 0
        }
        else if(row == 1) {
            value = 1
        }
        else{
            value = 2
       }
    }
    @IBAction func swicthToController(_ sender: Any) {

        if value == 0{
            let vc = self.storyboard?.instantiateViewController(withIdentifier: "first") as! asasasViewController
            self.present(vc, animated: true, completion: nil)
        }
        if value == 1{
            let vc = self.storyboard?.instantiateViewController(withIdentifier: "second") as! secondViewController
            self.present(vc, animated: true, completion: nil)
        }
        if value == 2{
            let vc = self.storyboard?.instantiateViewController(withIdentifier: "third") as! thirdViewController
            self.present(vc, animated: true, completion: nil)
        }
    }
}