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,但是在被调用后我得到了一个完整的黑屏。 –