2016-05-25 101 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

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

相關問題