繁体   English   中英

在UIImagePickerController()的dismiss()之后每次调用viewDidLoad()。

[英]viewDidLoad() is called every time after dismiss() of UIImagePickerController()

我从ViewControllerA提供了UIImagePickerController() ,当我选择一个图像时,它的委托被调用,在该委托中我写了

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {

        dismiss(animated: true, completion: nil)
}

但是ViewControllerA viewDidLoad()也称为

请查找以下代码,不会每次都调用viewDidLoad。

override func viewDidLoad() {
    super.viewDidLoad()
    print("View Did Load")
}

private func imagePickerController(_ picker: UIImagePickerController,
                           didFinishPickingMediaWithInfo info: [String : AnyObject]) {
    picker.dismiss(animated: true, completion: nil);

    _ = info[UIImagePickerControllerOriginalImage] as! UIImage
}

func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
    picker.dismiss(animated: true, completion: nil)
}

使用此代码打开照片库,

@IBAction func btnclicked(_ sender: Any) {
    let picker = UIImagePickerController()
    picker.sourceType = .photoLibrary
    picker.delegate = self
    self.present(picker, animated: true, completion: nil)
}

还发布您的一些代码,以便我进行检查。

如有任何疑问,请通知我。

使用UIImagePickerViewController时,通常相机会发出内存警告,并且会调用您的viewcontroller的viewDidUnload方法。 下次显示视图时(关闭UIImagePickerViewController时),将调用viewDidLoad方法,因为该方法先前已卸载。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM