簡體   English   中英

不調用dismissViewControllerAnimated完成塊

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM