[英]How to execute methods right after dismissViewControllerAnimated completion block?
[英]dismissViewControllerAnimated completion block is not called
我試圖解雇這樣的視圖控制器:
[composeViewController dismissViewControllerAnimated:YES completion:^{
NSLog(@"Hello"); // Never outputted
}];
視圖控制器被解除,但由於某種原因,永遠不會調用完成塊。
我沒有遇到任何與其他視圖控制器沒有調用完成塊的問題。
這個視圖控制器是“特殊的”,因為它被添加為子視圖控制器(我以前沒有在我的應用程序中使用過)。 這是否會產生任何副作用,為什么不調用完成塊?
它是這樣添加的:
UIViewController *rootVC = [UIApplication sharedApplication].delegate.window.rootViewController;
[rootVC addChildViewController:self];
[rootVC.view addSubview:self.view];
[self didMoveToParentViewController:rootVC];
找出問題所在:我使用的第三方視圖控制器已被覆蓋- (void)dismissViewControllerAnimated:(BOOL)flag completion:(void (^)(void))completion
而不實際調用completion()
如果你提出一個模態,是視圖控制器接收消息(或層次結構中的頂部,我仍然沒有得到它)處理添加子vc交換視圖等的所有過程。似乎你正在做一個混合使用這兩種技術。 只需使用一個。
所以使用- (void)presentViewController:(UIViewController *)viewControllerToPresent animated:(BOOL)flag completion:(void (^)(void))completion
ad使用dismissViewController解除它讓視圖控制器管理所有內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.