我开始使用 RubyMotion 和 ProMotion。我正在构建一个表格视图,我想将数据移出到外部文件中以使其更易于管理。这是我到目前为止所拥有的:
class MasterScreen < PM::TableScreen
title 'States'
def table_data
[{
title: "Northwest States",
cells: [
{ title: "Oregon", action: :view_details, arguments: { state: @oregon }},
{ title: "Washington", action: :view_details, arguments: { state: @washington }}
]
}]
end
def view_details
open DetailScreen.new(nav_bar: true)
end
end
我想将状态名称(基本上是单元格标题)移动到可以加载和迭代的 YAML 或 JSON 文件中。我怎样才能实现这样的目标?
更新:我设法弄清楚如何从文件中加载文本。
首先,我添加bubble-wrap
到我的Gemfile
并运行bundle install
. BubbleWrap 提供了辅助方法App.resources_path
。
在my_app/resources/states.txt
我有一个状态列表,用新行分隔:
Oregon
Washington
Foobar
在我的表视图控制器中,我读取文件并将文件拆分为行数组。
class MasterScreen < PM::TableScreen
title 'States'
def on_load
data = File.read("#{App.resources_path}/states.txt")
@states = data.lines
end
def table_data
[{
title: "Northwest States",
cells: @states.map do |state|
{
title: state,
action: :view_details,
arguments: { state: state }
}
end
}]
end
def view_details(arguments)
open DetailScreen.new(nav_bar: true, title: arguments[:state])
end
end
这行得通,但这只是我试图做的事情的一部分。我仍然想使用 YAML 之类的结构来表示标题和副标题。做这种事情的 RubyMotion 方法是什么?