【发布时间】:2016-06-04 13:47:49
【问题描述】:
我是初学者,请友好解释,谢谢。
所以基本上每次我点击一个单元格然后再点击我如何才能再次完全重新加载表格。
我尝试在 viewDidAppear 和 viewWillAppear 中添加tableView.reloadData(),它没有工作并尝试添加parseQuery.findObjectsInBackgroundWithBlock
所以我要解释一下我到底想要做什么
解析时我有一个布尔值,基本上如果它是假的,我会显示假数据,如果它是真的,我什么都不显示,一旦我点击该单元格,我将布尔值更改为真,当我点击返回时,我想要它会重新加载表格,以便再次检查布尔值是真还是假。
更新
我已将获取移动到viewWillApear,结果更接近我想要的。现在,当我点击任何一个单元格时,最后一个单元格会被删除,这不是应该的样子。我点击的那个应该从列表中删除。
- 第 1 项
- 第 2 项
- 第 3 项
- 第 4 项
当我在逻辑上点击第 1 项时,第 1 项应该被删除,因为在解析中,布尔值将设置为 false,一旦设置为 false,它就不应该显示,但是会发生第 4 项被删除并且当我重新启动应用程序时请参阅第 1 项已删除,其余部分按原样保留。
class recentTableViewController: UITableViewController {
var tdyName = [String]()
var dataparse: NSMutableArray = NSMutableArray()
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
self.tdyName.removeAll()
let parseQuery = PFQuery(className: "request")
parseQuery.findObjectsInBackgroundWithBlock { (objects, error) -> Void in
if let objects = objects {
for object in objects {
if object["reqRead"] as! Bool == false {
print("reqs not read")
self.tdyName.append(object["reqName"] as! String)
self.dataparse.addObject(object)
} else {
print("req read")
}
}
self.tableView.reloadData()
}
}
}
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
// #warning Potentially incomplete method implementation.
// Return the number of sections.
return 1
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// #warning Incomplete method implementation.
// Return the number of rows in the section.
return tdyName.count
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let myCell = tableView.dequeueReusableCellWithIdentifier("recentCell", forIndexPath: indexPath) as! recentTableViewCell
let backgroundQueue = NSOperationQueue()
backgroundQueue.addOperationWithBlock(){
let cellDataParse: PFObject = self.dataparse.objectAtIndex(indexPath.row) as! PFObject
NSOperationQueue.mainQueue().addOperationWithBlock(){
myCell.recentName.text = cellDataParse.objectForKey("reqName")! as? String
}
}
return myCell
}
}
我确实在不同的视图中将其更改为 true,但是当我返回此视图时,我看不到任何更改,除非我返回主视图并返回此处,因此它将完全重新加载并且我看到更改。
【问题讨论】:
-
不确定我是否理解。如果您只更改 Parse 上的布尔值,则需要从 Parse 中读取它以了解新值。
viewDidLoad有查询,但不会仅通过返回视图来调用。当您说viewWillAppear不起作用时,您是从那里重新进行查询吗? -
@PhillipMills 我已经更新了代码并解释了更多,如果有帮助的话
-
您的更新谈到删除了错误的内容,但我没有看到任何处理选择要删除的内容的代码。
-
@PhillipMills 基本上有一个带有单元格的tableView,一旦你点击一个单元格,它就会带你到另一个
viewController,其中有两个按钮可以接受和拒绝,一旦任何按钮都是点击布尔值变为 false 然后您将返回 tableView 并且 tableView 中的最后一项被删除
标签: ios swift uitableview parse-platform uinavigationcontroller