如何在SWIFT中重绘我的视图?

时间:2015-07-05 17:06:29

标签: ios swift uiviewcontroller setneedsdisplay uimodalpresentationstyle

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

我不知道该怎么做。

1 个答案:

答案 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