1
好吧,讓我的ActivityViewController正常工作時正常共享,但每當用戶在調用ActivityViewController後點擊取消,我就會得到惱人的致命錯誤。Swift取消ActivityViewController導致致命錯誤
fatal error: unexpectedly found nil while unwrapping an Optional value
所以看起來我沒有很好地解開我的選擇權。這裏的共享方法:
@IBAction func share(sender: UIBarButtonItem) {
var memeedimage = generateMemedImage()
let activityViewController = UIActivityViewController(activityItems:[memeedimage] , applicationActivities: nil)
presentViewController(activityViewController, animated: true, completion: nil)
activityViewController.completionWithItemsHandler = {
(activity, success, returneditems, error) in
println("Activity: \(activity) Success: \(success) Items: \(returneditems) Error: \(error)")
self.save()
activityViewController.dismissViewControllerAnimated(true, completion:{
let memevc:MemeTableViewController = MemeTableViewController()
self.presentViewController(memevc, animated: true, completion: nil)
})
}
和共享方法調用使用隱含展開可選導致的錯誤,會生成一個名爲米姆對象保存功能:
func save(){
var meme : MemeObject!
meme = MemeObject(textFieldtop : texfieldtop.text! ,textFieldbottom : textfieldbottom.text! ,image : imagePickerView.image! , memedImage : generateMemedImage())
(UIApplication.sharedApplication().delegate as! AppDelegate).memes.append(meme!)
}
所以我決定安全地拆禮物米姆可選值但調用的另一個問題現在
func save(){
var meme : MemeObject?
if let memez = meme{
meme = MemeObject(textFieldtop : texfieldtop.text! ,textFieldbottom : textfieldbottom.text! ,image : imagePickerView.image! , memedImage : generateMemedImage())
(UIApplication.sharedApplication().delegate as! AppDelegate).memes.append(meme!)
}
else{
println("Optionals man")
}
}
當對象不是零,「選配人」打印不應該發生而C在共享方法中ompletionwithitemshandler屬性沒有提供在用戶共享對象後應該直接發生的表視圖控制器。
代碼MemeTableViewController:
任何幫助嗎?
表視圖控制器仍然沒有得到初始化 '梅梅' 後調用。想知道爲什麼? –
你不需要調用activityViewController.dismissViewControllerAnimated。我編輯了我的答案。請看看它。 – agy
好吧,現在我認爲ActivityViewController調用了TableViewController,但是在被調用後我得到了一個完整的黑屏。 –