![](/img/trans.png)
[英]How to access from viewController another viewController in Swift 3
[英]Swift: Access an enum from another viewController class
我有两个视图控制器(A 和 B)。 在主视图控制器 (A) 中,我试图设置一个变量,可能的值是枚举。 以下代码在第二个视图控制器(B)中
代码:
enum Numbers: String {
case one = "One"
case two = "two"
case three = "three"
}
var numberSelected: Numbers? = .one
我正在尝试加载第二个 ViewController(B) 并根据 Main 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 = secondVC.
我无法访问数字(枚举)。
任何人都知道我们如何从主视图控制器中设置 numberSelected ?
我真的很感谢你的帮助。
您无法访问Numbers
因为嵌套在类中的枚举是static
。 您不能通过该类的实例访问静态成员。 您可以像这样正常访问它:
secondVC.numberSelected = SecondViewController.Numbers.one
事实上,你可以只写:
secondVC.numberSelected = .one
如果languageSelected
的类型也是SecondViewController.Numbers
,则可以在一行中执行此操作,无需 switch 语句:
secondVC.numberSelected = languageSelected
在任何其他类(如常量类)中创建枚举,并且您想要在哪个类中使用枚举只需创建该枚举的对象并与该对象一起使用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.