解雇子视图控制器时调用父视图控制器方法

时间:2015-06-11 13:46:49

标签: ios swift uiviewcontroller

我想从我的子视图控制器调用我的父视图控制器的方法如下:(我已经尝试对通知做同样的事情,但在我的情况下它没有帮助,所以我尝试了一种新的方式,如以下)

     var ParentViewController = self.parentViewController as! TextViewerViewController;
     self.dismissViewControllerAnimated(true, completion: {
          ParentViewController.refreshtextviewer_with_bookmark();
     });

我的TextViewerViewController有一个方法:

func refreshtextviewer_with_bookmark(){

有了这个,我在代码中得到"fatal error: unexpectedly found nil while unwrapping an Optional value"

var ParentViewController=self.parentViewController as! TextViewerViewController;

anybode可以帮忙吗?

更新关于我为什么要尝试这种方法:

我的父母方法refreshtextviewer_with_bookmark是一个长时间运行的操作,我想向用户显示进度,这是有效的。使用我已经实现的通知方法,只要我父进程的进程正在运行,用户就会看到子视图。在此之前不会显示父视图。 这就是为什么我正在寻找另一种方法,并认为这将是正确的方法。我想我需要一个解决方案,在子视图已被解除后调用我的方法。

更新2 为我找到解决方案,并附有评论提示: 我只是在完成块中调用通知:

self.dismissViewControllerAnimated(true, completion: {

NSNotificationCenter.defaultCenter().postNotificationName("refreshtextviewer_with_bookmark", object: nil);
                self.dismissViewControllerAnimated(true, completion: nil);

            });

0 个答案:

没有答案