私はiOS開発の初心者です。初めてのアプリを作成しています。本当に問題が悪い場合はごめんなさい。私はMaster/DetailテンプレートをXcodeで使用し、Core Dataを使用しています。私は、tableViewでカスタムセルスタイルを使用するようにテンプレートを変更しました。ユーザーが何かを追加したいときは、別のビューに切り替えてフォームを完成させます。ユーザーが[保存]をクリックすると、フォームデータがコアデータに保存され、ビューでMasterViewに戻ります。TableViewに挿入すると、カスタムセルが空白になります。アプリを閉じて再度開くときに空白ではない
私の問題は、フォームが保存されると、新しいセルを表示するようにtableViewが更新されますが、断続的に空白になることです。tableView時にはこれが起こります、それ以外の時は起こらないでしょう。アプリスイッチャーからアプリを閉じてもう一度開くまで、セルは空白のままです。
変更することを忘れていますか?助けてくれてありがとう。ここで
は、私は私のカスタムセルスタイルを追加するために、テンプレートに変更の機能は以下のとおりです。
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! CustomTableViewCell
let object = self.fetchedResultsController.objectAtIndexPath(indexPath) as! NSManagedObject
self.configureCell(cell, withObject: object)
return cell
}
func configureCell(cell: CustomTableViewCell, withObject object: NSManagedObject) {
let imageData: NSData = object.valueForKey("image") as! NSData
let picture: UIImage = UIImage(data: imageData)!
let date: NSDate
let dateFormatter = NSDateFormatter()
dateFormatter.locale = NSLocale.currentLocale()
cell.cellImage.image = picture
cell.locationNameLabel!.text = object.valueForKey("name")!.description
cell.categoryLabel!.text = object.valueForKey("category")!.description
date = object.valueForKey("date")! as! NSDate
dateFormatter.dateStyle = NSDateFormatterStyle.ShortStyle
cell.dateLabel!.text = dateFormatter.stringFromDate(date)
}
これは私が、私はあなたが必要とするかもしれないと思うFetchedResultsController
func controller(controller: NSFetchedResultsController, didChangeObject anObject: AnyObject, atIndexPath indexPath: NSIndexPath?, forChangeType type: NSFetchedResultsChangeType, newIndexPath: NSIndexPath?) {
switch type {
case .Insert:
tableView.insertRowsAtIndexPaths([newIndexPath!], withRowAnimation: .Fade)
case .Delete:
tableView.deleteRowsAtIndexPaths([indexPath!], withRowAnimation: .Fade)
case .Update:
self.configureCell(tableView.cellForRowAtIndexPath(indexPath!)! as! CustomTableViewCell, withObject: anObject as! NSManagedObject)
case .Move:
tableView.moveRowAtIndexPath(indexPath!, toIndexPath: newIndexPath!)
}
}
感謝を。私は 'tableView.reloadData()'を使ってみましたが、問題はまだあります。私はまた、viewWillAppearとviewDidLoadメソッドにリロード関数を配置しましたが、どちらも役に立ちませんでした。 –
あなたは、アプリケーションを終了して再度開いたときに、アプリケーションが以前にフォームに入力した正しいデータを取り込んで、セルに正しく入力すると言っていますか? –
はい、アプリを閉じると、情報がセルに表示されます。奇妙なことは、私がアプリを閉じることができない場合、私は上記の写真のような空のセルをクリックすることができ、それが正しい詳細ビューにその情報を持って行くことです。なんらかの理由で、私は閉じて再オープンするまでカスタムセルを表示したくないだけです。 –