在我的iPad应用程序上,我有一个带有按钮的UIViewController,可以打开一个modalView。
@IBAction func showPostCommentViewController(sender: AnyObject){
let modalView = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("PostCommentViewController") as! PostCommentViewController
modalView.modalTransitionStyle = UIModalTransitionStyle.CoverVertical
modalView.modalPresentationStyle = UIModalPresentationStyle.FormSheet
modalView.delegate=self
self.presentViewController(modalView, animated: true, completion: nil)
}
当我用dismissViewControllerAnimated关闭modalView时,我想“刷新”我的视图控制器(因为我添加了新内容)。但由于模态视图是“表单”样式,因此不会调用viewDidAppear或viewWillAppear。
我尝试使用setNeedsDisplay,但它不起作用。
我不知道该怎么做。
答案 0 :(得分:1)
这将是委托模式的完美用例。
1)在if (isset($_POST["Register"])) {
内定义协议。
PostCommentViewController
2)在protocol PostCommentVCInformationDelegate {
func hasDismissedPostCommentViewController(controller:PostCommentViewController)
}
PostCommentViewController
3)当你解雇var delegate: PostCommentVCInformationDelegate?
时,你会打电话给PostCommentViewController
这会将信息发送回演示VC。
4)现在我们展示的View Controller符合这个协议。
delegate?.hasDismissedPostCommentViewController(self)
5)在呈现模态视图时:
class ViewController: UIViewController, PostCommentVCInformationDelegate
6)最后,我们实施:
modalView.delegate = self