ios - Swift:从另一个 viewController 类访问枚举

标签 ios swift enums xcode9.4

我有两个 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/

相关文章:

entity-framework-4 - 首先是 EF 代码中的枚举

java - 通过反射获取枚举的值

ios - iOS9.3.5如何注册自定义推送通知?

iphone - 防止用户点击 UIImageView 后面的按钮

ios - 如果实现类标记为私有(private),则不调用委托(delegate)方法?

ios - Swift:如何向 memcpy(...) 添加偏移量

ios - 使用 Core Data 时如何使用 Watch Connectivity 共享数据

c - 使用枚举访问二维数组索引

ios - 我如何将 UISegmentedControl 子类化,以便各个段识别 UILongPressGestureRecognizer?

ios - Sprite Kit - 如果球正在远离或靠近地面,则由于脉冲和重力检测 Y