我有两个 View Controller (A 和 B)。在主视图 Controller (A)中,我尝试设置一个变量,可能的值是枚举。以下代码位于第二个 View Controller (B)
代码:
enum Numbers: String {
case one = "One"
case two = "two"
case three = "three"
}
var numberSelected: Numbers? = .one
我正在尝试加载第二个 ViewController(B) 并根据主 viewController 中的选择设置 numberSelected 的值:
func loadSecondoViewController() {
let storyBoard = self.storyboard?.instantiateViewController(withIdentifier: "ColorsViewController")
guard let secondVC = storyBoard as? SecondViewController else {return}
secondVC.modalTransitionStyle = UIModalTransitionStyle.flipHorizontal
switch languageSelected {
case .one:
secondVC.numberSelected = secondVC.
self.present(secondVC, animated: true, completion: nil)
}
在这一行:
secondVC.numberSelected = secondaryVC。
我无法访问数字(枚举)。
有人知道如何从主视图 Controller 中设置 numberSelected 吗?
非常感谢您的帮助。
最佳答案
您无法访问Numbers
,因为嵌套在类中的枚举是静态
。您无法通过该类的实例访问静态成员。您可以像这样正常访问它:
secondVC.numberSelected = SecondViewController.Numbers.one
事实上,你可以这样写:
secondVC.numberSelected = .one
如果 languageSelected
的类型也是 SecondViewController.Numbers
,您可以在一行中完成此操作,无需 switch 语句:
secondVC.numberSelected = languageSelected
关于ios - Swift:从另一个 viewController 类访问枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51737392/