im正在开发一个利用一个主视图控制器上的许多按钮(可能有20个按钮)的应用程序,这些按钮都可以激活单独视图控制器上弹出窗口中的单个选择器视图。我认为答案不是很多。我应该考虑一种更好的方法吗?
我在想-可以通过任何按钮激活的一种多用途搜索功能,但不知道如何实现。
赞赏任何建议
迈克
答案 0 :(得分:1)
将所有按钮设置为相同的操作,例如:
@IBAction func keyPressed(_ sender:UIButton){
// use button title string
self.keyString = sender.titleLabel?.text as! String
// or tag
self.keyTag= sender.tag?
self.performSegue(withIdentifier: "TheSegue", sender: self)
}
然后,您将要基于发送者的状态来设置要导航到的View Controller。因此,您可以按以下方式覆盖prepare:forSegue
方法。
override func prepare(for segue:UIStoryboardSegue, sender:Any?) {
let destController = segue.destination as! Dest_Controller_Class
// use tag or keyTitle to set controller attributes
// before view is shown
destController.keyTag = self.keyTag
destController.keyString = self.keyString
}
现在,一旦导航到Dest_Controller_Class
,您将在视图控制器中本地按下按钮的属性,并可以根据需要更新视图:
class Dest_Controller_Class: UIViewController {
var keyString: String?
var keyTag: Int?
@IBOutlet weak var label: UILabel!
override func viewDidLoad() {
if (keyString != nil) {
label.text = keyString;
// or likewise use tag
} else {
label.text = "keyString not set"
}
}
}