swift - 我正确使用故事板吗?
问题描述
我使用故事板对吗?
我有几个带有视图控制器的故事板。
当我需要在它们之间导航时,我会执行以下操作:
let storyboard = ...
每次使用故事板时,我都会创建一个新的故事板实例。这是一个不好的方法吗?或者我应该在view did load
?
func detailsRequestedForMessage(message: message) {
let storyboard = UIStoryboard(name: "Additional", bundle: nil)
let viewController = storyboard.instantiateViewController(withIdentifier: "MessageDetailsViewController") as! MessageDetailsViewController
viewController.messageId = message.id
self.navigationController?.pushViewController(viewController, animated: true)
}
func viewAllMessage() {
let storyboard = UIStoryboard(name: "Additional", bundle: nil)
let viewController = storyboard.instantiateViewController(withIdentifier: "AllMessageViewController") as! AllMessageViewController
self.navigationController?.pushViewController(viewController, animated: true)
}
func viewOptions() {
let storyboard = UIStoryboard(name: "Options", bundle: nil)
let viewController = storyboard.instantiateViewController(withIdentifier: "OptionsViewController") as! OptionsViewController
self.present(viewController, animated: true)
}
解决方案
存储故事板引用不需要任何成本,但需要时间从名称中解析故事板引用。所以我会说你应该把像
self.storyboardAdditional = UIStoryboard(name: "Additional", bundle: nil)
在 中viewDidLoad
,将引用存储在属性中,然后通过属性引用情节提要。
推荐阅读
- android - 启动时登录亚马逊崩溃
- python - 在 keras 中创建自定义的“不可微分”激活函数
- protobuf-net - Serializer.PrepareSerializer 和 RuntTimeTypeModel.CompileInPlace 有什么区别
- gnuplot - 如何设置彩盒的位置?
- python - 一个点在多边形内吗?方法有问题
- ssl - Nginx SSL 什么都不返回
- macos - 为什么创建新的 API 项目时出现兼容性错误?
- c# - 将失败的 IValueConverter 的 TextBox 状态绑定到 XAML 中的按钮
- azure - 复制前如何转换列?
- angular - 如何使用angular2中的primeng突出显示正在从列表中搜索的那些