我正在使用PFQueryTableViewController,它只应在用户按下按钮后加载对象。问题出在方法- (PFQuery *)queryForTable
。
这是我的代码:
- (PFQuery *)queryForTable
{
if (self.searchText) {
PFQuery *titleQuery = [PFQuery queryWithClassName:@"photo"];
[titleQuery whereKey:@"titleKey" containsString:self.searchText];
PFQuery *descriptionQuery = [PFQuery queryWithClassName:@"photo"];
[descriptionQuery whereKey:@"descriptionKey" containsString:self.searchText];
PFQuery *searchQuery = [PFQuery orQueryWithSubqueries:@[titleQuery, descriptionQuery]];
return stringSearchQuery;
}
return nil;
}
问题在于,当用户决定使用时,我会在其他位置手动调用- (void)loadObjects
。通过在此方法中返回nil,PFQueryTableView将无限期地保留加载指示符,并禁用用户交互。
我需要返回什么才能使表格视图为空白,然后加载用户交互后?
答案 0 :(得分:2)
不要检查searchText是否存在,而是尝试将其默认为数据库中永远不会发生的事情,即像#&n;" @@@@@@@ Dummy string这样的虚拟字符串。将永远不会出现在数据库@@@@@@@和#34;。
中这样,查询将被执行但不返回任何结果 - 这应该使tableview为空。然后,当用户输入搜索字符串并点击按钮时,将使用真实搜索字符串执行queryForTable代码。