你们知道是否可以在 Storyboard 中使用 Swift 嵌套类作为 UIViewController 吗?
我正在研究构建项目的不同方法,其中之一是通过将相关类嵌套在同一个主类中来对它们进行分组。
让我用一个例子来解释:
假设我有一个用于显示我的应用程序设置的屏幕,它需要一个 UIViewController 和一个模型。
我可以创建 2 个类:SettingsController
和 SettingsModel
,但我想知道通过主类 Settings 来构造它是否不是很好
包含嵌套类 Controller
和 Model
就像这样
class Settings {
class Controller: UIViewController {
...
}
class Model {
...
}
}
这样我就可以通过执行 Settings.Controller
和 Settings.Model
来使用它们,我认为这看起来很不错。
现在这在使用 Storyboard 时效果很好。在 Storyboard 中,当我选择一个 View Controller 来设置自定义类时,如果我输入 Setting.Controller
并按回车键,该字段不会验证并被清除。
所以我的问题是你们知道我做错了什么或者这根本不可能吗?
最佳答案
当然,是在发布问题之后我找到了解决方案,所以我将其分享给后代。
所以我尝试这样做的方式有 1 个问题:
- 嵌套类是使用点的引用
表示法:
Settings.Controller
但 Interface Builder 没有 将其视为有效的类名
解决方案很简单,给 Controller 它自己的 Objc 名称:
class Settings {
@objc(SettingsController)
class Controller: UIViewController {
}
...
}
通过这样做,您可以为嵌套 Controller 提供一个 ObjC 名称,从而将其暴露给 Interface Builder。现在您可以通过填写 SettingsController
来引用 Controller 。
关于ios - 在 Storyboard中使用 Swift 嵌套类作为 UIViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57008827/