我在tableViewController中使用这些行:
override func viewDidAppear(animated: Bool) {
// Refresh the table to ensure any data changes are displayed
self.tableView.reloadData()
}
当我编辑数据并返回tableView时,我可以看到我所做的更改,因为重新加载似乎已经发生。
当我添加新数据(我使用与编辑时相同的保存方法)时,我返回上一个tableView,但新条目不会出现。但是他们肯定会在解析中保存。
我想知道,为什么添加和编辑之间存在差异?与两者使用相同的代码?并使用相同的IBAction进行保存?
这是我的保存方法:
@IBAction func saveNewCard(sender: AnyObject) {
// set up data
self.cardObject["front"] = self.frontTextArea.text
self.cardObject["back"] = self.backTextArea.text
self.cardObject.setObject(cardSetObject, forKey: "cardset") // Setting the pointer
println(cardObject)
self.cardObject.saveEventually { (success, error) -> Void in
if(error == nil){
println(success)
// Return to table view
self.navigationController?.popViewControllerAnimated(true)
}else{
println(error.userInfo)
}
}
}
在viewDidLoad()
我决定使用新的(添加)或现有的(编辑)对象:
var cardObject: PFObject! // if edit - I get the object transported via segue
override func viewDidLoad() {
super.viewDidLoad()
if (self.cardObject != nil){
// edit
self.navigationItem.title = "Edit"
self.frontTextArea.text = self.cardObject["front"] as String
self.backTextArea.text = self.cardObject["back"] as String
}else{
// add new
self.navigationItem.title = "Add"
self.cardObject = PFObject(className:"Card")
}
}
这是我的cellForRowAtIndexPath
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell = tableView.dequeueReusableCellWithIdentifier("cardCell", forIndexPath: indexPath) as CardTableViewCell
// card object
let cardObject: PFObject = self.cardObjects.objectAtIndex(indexPath.row) as PFObject
var front = cardObject["front"] as String
var back = cardObject["back"] as String
cell.frontLabel.text = front
cell.backLabel.text = back
return cell;
}
答案 0 :(得分:0)
如果您使用导航控制器,请使用以下命令:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
// Get the new view controller using [segue destinationViewController].
if([[segue destinationViewController] class] == [self class]){
[self.tableView reloadData];
}
}