我想导航到另一个具有选择器 View 的 View Controller ,但这是通用的,必须根据导航前传递的类型参数选择内容选择 View 。这个参数是一个名为tipo
所以在我的 MainViewController 中我有一个导航功能:
@objc func handlerSelectOpTipo(_ sender: UILabel) {
let vcSelectTipo = self.storyboard?.instantiateViewController(withIdentifier: "ViewControllerSelect") as! ViewControllerSelect
// vcSelectTipo.tipo = .entrega // <- Example that I want.
vcSelectTipo.tipo = 0 // <- ENUM TYPE HERE
self.present(vcSelectTipo,animated: true,completion: nil)
}
Picker 的 ViewController
class ViewControllerSelect : UIViewController, UIPickerViewDelegate, UIPickerViewDataSource {
@IBOutlet weak var pickerView: UIPickerView!
@IBOutlet weak var btOk: UIButton!
@IBOutlet weak var lblTitulo: UILabel!
var tipo : Int?
var conteudo : [String] = []
override func viewDidLoad() {
pickerView.setValue(UIColor.white, forKey: "textColor")
pickerView.dataSource = self
pickerView.delegate = self
btOk.addTarget(self, action: #selector(handlerBtOk), for: .touchUpInside)
}
@objc func handlerBtOk() {
}
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return conteudo.count
}
enum tipoConteudo: Int {
case tipo
case entrega
case priceList
case campanha
}
}
我无法访问 set var tipo : Int?
我想要一些像:
vcSelectTipo.tipo = .entrega
vcSelectTipo.tipo = .priceList
但自动完成不显示 tipoConteudo
枚举类型。
最佳答案
您已将 tipo
变量声明为 Int
而不是您的枚举类型。
改变:
var tipo: Int?
到:
var tipo: TipoConteudo?
并且类型名称应以大写字母开头,因此 tipoConteudo
应为 TipoConteudo
。
关于ios - 如何在 Swift4 中获取另一个类的枚举内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50195606/