Swift-如何从ModalPopupController

时间:2018-07-08 11:20:39

标签: ios swift uiviewcontroller modalviewcontroller

我有2个ViewController,一个名为FirstViewController,它包含一个UIImage和一个UIButton,第二个名为ModalPopupViewController,它包含2个按钮

因此,在我的FirstViewController上,当我按下UIButton时,它将在当前上下文上进行“交叉溶解”过渡
在ModalPopupViewController上,当我按第一个按钮时,我用UIImagePickerController选择一张图片,然后保存,当我按第二个按钮时,我关闭了视图,但只有在重新启动应用程序后,我的图片才会出现。
当我离开ModalPopupViewController时重新加载FirstViewController吗?

我尝试调用viewWillAppearviewDidAppear,但是当我从ModalPopupViewController回到FirstViewController时却没有追加任何内容

1 个答案:

答案 0 :(得分:1)

您可以使用委托模式

protocol ReloadManager {

    func reloadImageV(image:UIImage)
}

当您呈现模式时

let modal = ///

modal.delegate = self

present(modal//////

class FirstVC:UIViewController , ReloadManager {


    func reloadImageV(image:UIImage) {
      // reload here
    }
}


class ModalVC:UIViewController {

    var delegate:ReloadManager?


    @IBAction func btnClicked(_ sender:UIButton) {

        delegate?.reloadImageV(image: sendedImage)

        dismiss(animated: true, completion: nil)
    }
}

//

删除segue并在导航到模式的btn动作内执行此操作,为模式提供情节提要标识符,将其转换为真实的模式类名

let vc = self.storyboard?.instantiateViewController(withIdentifier: "modalID") as! ModViewController

vc.delegate = self

vc.providesPresentationContextTransitionStyle = true;

vc.definesPresentationContext = true;

vc.modalPresentationStyle = UIModalPresentationStyle.overCurrentContext

self.present(vc, animated: false, completion: nil)