有没有办法在 Xcode Storyboard 属性检查器中使用 plist 文件字符串?
Posted
技术标签:
【中文标题】有没有办法在 Xcode Storyboard 属性检查器中使用 plist 文件字符串?【英文标题】:Is there a way to use plist file strings in the Xcode Storyboard Attribtutes inspector? 【发布时间】:2020-09-23 21:10:40 【问题描述】:我发现我必须为 segue 标识符声明相同的字符串值两次:
-
曾经在我的 prepare() 存根中处理 segue 逻辑的代码
在检查器中设置故事板中的 segue ID
显然,这会引发许多潜在的拼写错误问题以及两个字符串值之间的问题。
如果可能的话,我想做的是在 plist 文件中定义一次我的 segue ID,然后在上面列出的两个地方引用相同的定义两次。当然我知道可以在 Swift 中引用 plist 值,但在 Storyboard 属性检查器中这可能吗?
【问题讨论】:
【参考方案1】:我认为这是不可能的,但我有两种选择:
使用R.swift 之类的内容。此工具将解析您的 Storyboard 并创建可在代码中使用的常量
不要通过标识符来识别segue,而是通过其目标控制器来识别。
例子:
override func prepare(for segue: UIStoryboardSegue, sender: Any?)
if let controller = segue.destination as? MyViewController
controller.value = self.value
我个人使用数字2,我很少阅读segue的name属性
【讨论】:
谢谢,您的第二个提案听起来是最好的前进道路。不过,在我看来,这确实有点像苹果公司的疏忽。 这个 API 是在 Objective-C 中创建的,它的类型检查不那么严格,所以比较字符串更有意义。您还可以使用它来区分两个 segue,以查看具有相同类但具有不同操作或其他内容的控制器。以上是关于有没有办法在 Xcode Storyboard 属性检查器中使用 plist 文件字符串?的主要内容,如果未能解决你的问题,请参考以下文章
重用复杂的自定义UI元素 - Xcode Storyboard
Xcode 10 Storyboard 非常慢到没有响应的地步