我试图像这样解除一个视图控制器:
[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];
addChildViewController:
实际上将该视图控制器推入导航堆栈。在该块可以触发之前,您必须将其弹出。 - CodaFidismiss...
之前执行[composeViewController removeFromParentViewController];
,我可以看到它已从rootViewController
的childViewControllers
属性中移除,但是完成块仍然未被调用。 - Peter Warbo-presentViewController...
但是我正在使用的这个视图控制器来自外部源,所以我无法控制他们想要如何呈现它。 - Peter Warbo