2016-05-25 67 views
0

我有叫CommentEditorViewController模态呈现,这里是驳回它的代码视图控制器:如何在dismissViewControllerAnimated完成块后立即执行方法?

- (IBAction)doneButtonTouched:(id)sender 
{ 
    NSLog(@"doneButtonTouched"); 
    [self dismissViewControllerAnimated:YES completion:^{ 
     [[ImageStore sharedStore] setComment: self.textView.text forImageWithIndex:self.imageIndex]; 
    }]; 
} 

它的工作原理完全没问题,但问题是,父视图控制器(这被称为PhotosViewControllerviewWillAppearviewDidAppear方法正在此块之前执行。我无法弄清楚,如何在此块完成后立即执行代码。我应该在街区做所有这些吗?如果是这样,我该怎么做?

+1

如果您希望该代码与dismissViewCOntroller一起执行,请将该代码放在行dismissViewControllerAnimated之前。如果你使用完成块,你的代码只会在子VC完全解除时才会执行。当然,有一个获取父视图的机会,将会调用完成模块,因为完成模块是异步的,它不能保证它将连续运行! –

回答

3

你必须移动dismissViewControllerAnimated之前代码:完成:线,因为写在完成块中的代码将执行时的ViewController真的淘汰,这也许会是后父视图 - 控制的viewDidAppear

+0

非常感谢!我很愚蠢,不想弄明白。 –

相关问题