以促销/表格形式保存数据

时间:2014-01-02 07:03:09

标签: rubymotion

我有一个显示的表单,当我单击提交按钮时,它会将值记录到控制台。

如何保留设置,以便我可以在应用程序的其他位置访问它们,当我返回到表单屏幕时,表格是预先填充的?

我的表单设置如下

class ChimeScreen < FormotionScreen

  title "Chime"

  def on_submit(_form)
    data = _form.render

    # settings.enable = data[:enable]
    # settings.alarm_time = data[:alarm_time]
    PM.logger.debug data[:alarm_time]
    open BrowseScreen
  end

  def table_data
    {
      ...
    }
  end

2 个答案:

答案 0 :(得分:1)

Formotion通过在表单上设置persist_as值来允许持久数据。

请参阅此处的示例:https://github.com/clayallsopp/formotion/tree/master/examples/Persistence

然后,您可以通过查看

将此表单数据检索为哈希
App::Persistence["FORMOTION_#{your_symbol_persisting_as_here}"]

答案 1 :(得分:0)

好吧,我认为我期待在那里设置一些神奇的东西,实际上它只是直接的价值设定。

def on_submit(_form)
  data = _form.render
  @defaults = NSUserDefaults.standardUserDefaults
  unless data.nil?
    @defaults["alarm_time"] = data[:alarm_time]
    @defaults["alarm_enabled"] = data[:alarm_enabled]
  end
  open BrowseScreen
end

然后设置每个表单字段的值...

def table_data
 @defaults = NSUserDefaults.standardUserDefaults
 {
  sections: [{
    title: "Set Daily Reminder",
    rows: [{
      title: "Enable",
      key: :alarm_enabled,
      type: :switch,
      value: @defaults["alarm_enabled"]
    },

...等