我试图链接到另一个视图控制器,按下一个按钮,我已经命名为“查找”。问题在于pickerView。我希望从pickerView中选择“服务”来确定您在哪个页面上结束。例如,在pickerView中选择“bars”,单击“查找”按钮,然后将其带到bars视图控制器页面。
这是我的代码,它控制选择器和查找按钮。
导入UIKit
类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]
}}
我对快速编码很陌生,所以请你用简单的方式解释一下你的答案。
非常感谢
肖恩
发布于 2015-06-29 13:03:43
在@IBAction func Find()中,您可以使用switch语句检查从UIPickerView中选择了哪些项,并在此基础上显示所需的视图控制器,如下所示:
let cafeViewController: CafeViewController = CafeViewController()
self.presentViewController(cafeViewController, animated: true, completion: nil)但是,您确定每个项目都需要它自己的视图控制器吗?它们看起来可能完全一样,只有提供的数据才会有所不同.因此,您可以只使用一个视图控制器,在func prepareForSegue()中发送选中的项,并据此在视图控制器中的viewDidLoad()中准备数据。
或者至少尝试尽可能多地重用,为视图控制器创建一些基类,然后为每个服务创建子类。
https://stackoverflow.com/questions/31116087
复制相似问题