gpt4 book ai didi

ios - 在 Storyboard中使用 Swift 嵌套类作为 UIViewController

转载 作者:搜寻专家 更新时间:2023-11-01 06:51:03 27 4
gpt4 key购买 nike

你们知道是否可以在 Storyboard 中使用 Swift 嵌套类作为 UIViewController 吗?

我正在研究构建项目的不同方法,其中之一是通过将相关类嵌套在同一个主类中来对它们进行分组。

让我用一个例子来解释:

假设我有一个用于显示我的应用程序设置的屏幕,它需要一个 UIViewController 和一个模型。
我可以创建 2 个类:SettingsControllerSettingsModel,但我想知道通过主类 Settings 来构造它是否不是很好 包含嵌套类 ControllerModel 就像这样

class Settings {
class Controller: UIViewController {
...
}
class Model {
...
}
}

这样我就可以通过执行 Settings.ControllerSettings.Model 来使用它们,我认为这看起来很不错。

现在这在使用 Storyboard 时效果很好。在 Storyboard 中,当我选择一个 View Controller 来设置自定义类时,如果我输入 Setting.Controller 并按回车键,该字段不会验证并被清除。

所以我的问题是你们知道我做错了什么或者这根本不可能吗?

最佳答案

当然,是在发布问题之后我找到了解决方案,所以我将其分享给后代。

所以我尝试这样做的方式有 1 个问题:

  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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com