連絡先を追加/編集できる場所を設定しようとしています。 しかし、CoreDataStack.contextを呼び出そうとすると、値がゼロになります。CoreDataStackの管理されたコンテキストがナビゲーションバーに残っていません
ここでは、私が私の最初のビューコントローラに渡すとrootViewControllerの内側に、私は別のビューコントローラに私を送信ボタンを持ってAppDelegate
lazy var coreDataStack = CoreDataStack()
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.
UINavigationBar.appearance().barTintColor = navigationMainColor
UINavigationBar.appearance().tintColor = navigationMainItemColor
let navigationController = window!.rootViewController as! UINavigationController
let listViewController = navigationController.topViewController as! ViewController
listViewController.coreDataStack = coreDataStack
return true
}
に由来します。私がprint(coreDataStack)を呼び出すと、rootViewControllerではCoreDataStackコンテキストがまだそこにあります。だから私はそれが最初のビューに存在することを知っています。私が連絡先ページに行くために押すボタンは、ツールバーのバーボタンです。
可能性のある問題1は、ナビゲーションバーを移動したり移動したりしていない可能性がありますが、すべてのビューはナビゲーションスタックに埋め込まれている可能性があります。
NSManagedObjectContextを渡すために、最初のView Controller内でPrepForceを準備する必要がありますか?
また、連絡先と新しい連絡先ビューコントローラの間にナビゲーションコントローラがあります。しかし、その前には何も返されていないようだ。連絡先で は、ユーザーが連絡先を追加しようとしているかどうかを確認するコントローラprepareForSegueがここ
else if segue.identifier == "AddContact" {
let navigationController = segue.destinationViewController as! UINavigationController
let addViewController = navigationController.topViewController as! NewContactViewController
let contactEntity = NSEntityDescription.entityForName("Contact", inManagedObjectContext: coreDataStack.context)
let newContact = Contact(entity: contactEntity!, insertIntoManagedObjectContext: coreDataStack.context)
addViewController.contact = newContact
addViewController.context = newContact.managedObjectContext
addViewController.delegate = self
}
発見されたと私は取得していますエラーは、私が試してみて、新しい連絡先を作成するときcoreDataStack.contextがあるということです見ますnilを返す。私は何時間も何時間もこれを追い払ってきており、私は本当に小さいか大きいものを見逃していると思う。いずれにしても、私はコアデータを学び、より良くなっていきたいだけです。
ナビゲーションコントローラを手に入れて、目的地のコントローラを取得するだけですか?最初のView Controllerのprepareforsegueのdestinationcontroller.context = self.contextの問題ですか? – ggworean
私が何を参照しているかを示すために、回答が更新されました。 –
ああ、この準備は第2のビューコントローラーにあり、その受信タイプは準備中です。素晴らしい、ありがとう – ggworean