我如何根据变量导航到另一个视图控制器

How can i navigate to another view controller dependent on a variable

我正在尝试通过按下我命名为 'find' 的按钮 link 到另一个视图控制器。问题出在 pickerView 上。我想要来自 pickerView 的 'service' selected 来确定你最终到达的页面。例如,您在 pickerView 中 select 'bars',单击 'find' 按钮,它会将您带到条形视图控制器页面。

这是我控制选择器和查找按钮的代码。

导入 UIKit

class ViewController: UIViewController, UIPickerViewDelegate {

@IBOutlet weak var SelectedService: UILabel!

@IBAction func Find(sender: AnyObject) {

}


@IBOutlet weak var ItemLabel: UILabel!



var services = ["Cafe","Coffee Shops","Bar","Takeaway","Sunday Roast","Shoe Mender","Craft Shops","Electrical"]

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








}

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


func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int{

    return 1
}

func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int{

return services.count   
}

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

    return services[row]
}

}

我是使用 swift 编码的新手,所以请您用简单的方式解释一下您的答案。

非常感谢

肖恩

@IBAction func Find() 中,您可以使用 switch 语句来检查从 UIPickerView 中选择了哪个项目,并基于此您可以像这样呈现所需的视图控制器:

let cafeViewController: CafeViewController = CafeViewController()
self.presentViewController(cafeViewController, animated: true, completion: nil)

但是您确定每个项目都需要它自己的视图控制器吗?它们可能看起来完全一样,只是呈现的数据会不同......所以你可以只使用一个视图控制器,在 func prepareForSegue() 中发送选择的项目并根据该视图控制器中的 viewDidLoad() 准备数据.

或者至少尝试尽可能多地重用,为您的视图控制器创建一些基础 class,然后为每个服务创建子class。