ios - 使用 Swift 自定义 UIStoryboard

标签 ios swift uistoryboard

有没有人设法使用 Swift 创建自定义 UIStoryboard。

如果您跳转到 UIStoryboard 的定义,它只有一个初始化程序。但是它似乎返回一个 UIStoryboard。

init(name: String!, bundle storyboardBundleOrNil: NSBundle!) -> UIStoryboard

虽然初始化器没有返回类型。无论如何,当我尝试从我的子类初始化器调用这个 super 初始化器时,我得到以下错误

必须调用父类(super class)“UIStoryboard”的指定初始化程序

有人成功过吗?这是错误还是我做错了?

最佳答案

使用类(类型)方法实例化 Storyboard。

让 Storyboard:UIStoryboard = UIStoryboard(name: "storyboardName", bundle: nil);

编辑: 你不应该继承 UIStoryboard。此类没有公共(public)指定的初始值设定项。相反,你应该使用类方法来创建你的 Storyboard,因为有很多私有(private)的 Apple API 代码可以从它编译的 *.storyboardc 文件中加载 Storyboard。 Storyboard的实际加载必须通过类方法完成。

子类化无济于事,因为类方法只能保证返回 UIStoryboard,而不是您的特定子类。尝试使用另一种设计模式来实现您的目标。您可以向 UIStoryboard 添加一个类别(Swift 扩展)以添加您想要的任何其他方法,并从您的代码中调用它们。

关于ios - 使用 Swift 自定义 UIStoryboard,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24271131/

相关文章:

ios - Titanium:无需设备即可生成 IPA

ios8 - 使用Xcode 6,iOS 8, Storyboard 和xliff的Sane本地化工作流程?

ios - 将控制方法添加到 Storyboard 中创建的按钮?

ios - 是否可以使用 NSAttributedString 设置多个字体属性

ios - 放置范围并避免在文本字段中使用特殊字符

ios - 在 foreach 和 dispatch 之后执行操作

ios - 如何在 Firebase 中检索自动生成的 ID/ key ?

swift - 当键盘出现在 SwiftUI 中时,向上移动文本编辑器(在列表中)

ios - 在 Swift 中使用自定义类在数组中显示 UIImage

ios - Swift2运行时实例化UIStoryboard,失败如何处理?