按下后退按钮时PFQuery uiTableViewController重新加载表

时间:2013-05-24 01:30:17

标签: ios objective-c parse-platform

使用Parse,在我登录后,我会看到PFQueryTableViewController,它显示任务列表和另一个详细视图控制器,允许我编辑任务细节并转回。现在的问题是,在完成编辑并从堆栈中弹出任务详细信息视图后,PFQueryTableViewController不会反映新的更改。但是,当我返回到登录屏幕(在PFQueryTableViewController之前查看)并再次重新进入表视图时,表视图列表会更新。我尝试了以下内容:

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    [self.tableView reloadData];
}

以及

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    [self loadObjects];
    [self.tableView reloadData];
}

然而他们似乎没有生效。我的猜测是,在弹出视图并显示表格视图后,数据会更新。我只是想知道在我调查期间是否有人对此有任何见解。谢谢!

4 个答案:

答案 0 :(得分:1)

您可以尝试在viewDidAppear中重新查询queryForTable方法(但这会自然地在每个视图外观上使用API​​请求)

- (void)viewDidAppear:(BOOL)animated {
 [self queryForTable];
}

答案 1 :(得分:0)

此答案假定您使用的是本地数据存储,并希望看到其中所做的更改会反映在PFQueryTableViewController中。

由于ParseUI类不通过本地数据存储区实现任何形式的缓存,因此详细视图中所做的更改将不会出现在PFQueryTableViewController中,直到保存操作完成且tableView从Parse获取新项目。

您的问题的一个解决方案是向PFQueryTableViewController添加一个类别,该类别修改了它如何获取数据以包含本地数据存储区中的内容。

答案 2 :(得分:0)

在弹出视图控制器之前,您应确保保存数据。

使用Parse的保存方法和完成处理程序。

[request saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
  if (succeeded) {
    [self.navigationController popViewControllerAnimated:YES];
  }
}];

答案 3 :(得分:0)

您可以使用<asp:Button ID="Button1" runat="server" Text="نمایش" OnClick="Button1_Click1" Width="106px" /> 触发[self loadObjects]中所有对象的刷新。