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