【问题标题】:Titanium - reload tableview data?钛 - 重新加载表格视图数据?
【发布时间】:2011-06-08 10:12:11
【问题描述】:

所以我在标签组的主窗口中有一个 Titanium.UI.tableview,它显示问题列表。

在另一个选项卡中,我有一个“添加问题”表单。填写完并提交后,如果一切顺利,我需要能够更新第一个窗口中表格视图中的数据。

我该怎么做?我不介意它发生在哪里...当您单击该选项卡时,我试图找到一种刷新表格视图数据的方法,但是如果有某种“远程”更新表格视图的方式(从添加问题视图) 这确实是最好的方法(因此不必每次单击该选项卡时都更新)。

谢谢。

【问题讨论】:

    标签: iphone android titanium


    【解决方案1】:

    对此我不确定,但也许您可以尝试将您的问题存储为应用的列表属性??

    Ti.App.Properties.setList('Questions',YOURLIST);
    

    然后,当您填写 TableView 行时,只需循环调用每个问题

    for(var i = 0 ;i< Ti.App.Properties.getList('Questions').length;i++)
    { use Questions[i] to fill up row }
    ....add to TableView
    

    这样,每当您需要向列表中添加新问题时,只需调用它并将您的新问题推送到列表中即可。

    var tempList = Ti.App.Properties.getList('Questions');
    tempList.push(NEWQUESTION);
    Ti.App.Properties.setList('Questions',tempList);
    

    【讨论】:

    • 嗯,这实际上是一个非常好的主意。这样就不必每次添加新问题时都查询数据库。
    • 然后呢?我会使用window.addEventListener('focus'... 来刷新tableview 吗?
    • 也许我的问题错了,但是如果您的 TableView 在另一个(选项卡或)窗口中,每次单击选项卡时,您的窗口都会重新绘制...所以也许您可以尝试将那个窗口中的for循环(一个带有表格的)??该列表是一个应用程序属性,因此它将在应用程序会话之后持续存在...每次绘制窗口时,它都会从“问题”列表中获取问题。
    • 哦等等...您是否希望在添加新问题后立即显示更新的表格?在这种情况下,也许您应该添加一个“提交”按钮并在其“点击”侦听器中,将新问题添加到列表中,然后打开包含 TableView 的窗口。
    • 嗯,不知道你的意思。如果我在窗口第一次显示警报时将alert('hello') 放在窗口的 js 文件顶部。然后单击新选项卡并再次返回第一个选项卡,未显示警报。 (至少是 iPhone)。同样,问题列表也不会更新。
    【解决方案2】:
    [tableView reloadData] ;
    

    此方法将使用更改的 DataSource 刷新您的 UITableView。您可以将其添加到您 viewWillAppear 方法

    【讨论】:

      猜你喜欢
      • 2019-06-10
      • 1970-01-01
      • 1970-01-01
      • 2018-04-12
      • 2015-03-17
      • 1970-01-01
      • 2012-07-02
      • 2023-03-13
      • 1970-01-01
      相关资源
      最近更新 更多