1

在我的 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,但它不起作用。

我不知道该怎么做。

4

1 回答 1

1

这将是委托模式的完美用例。

1) 在PostCommentViewController.

protocol PostCommentVCInformationDelegate {
    func hasDismissedPostCommentViewController(controller:PostCommentViewController)
}

2)在里面设置一个委托变量PostCommentViewController

var delegate: PostCommentVCInformationDelegate?

3)当你解雇时PostCommentViewController,你会打电话delegate?.hasDismissedPostCommentViewController(self)

这会将信息发送回呈现的 VC。

4)现在我们的呈现视图控制器符合这个协议。

class ViewController: UIViewController, PostCommentVCInformationDelegate

5)呈现模态视图时:

modalView.delegate = self

6)最后,我们实现:

func hasDismissedPostCommentViewController(controller: PostCommentViewController) {
    //Update
}
于 2015-07-05T19:23:07.017 回答