我正在尝试在以下代码中调试一个非常奇怪的问题:
if(condition1) {
ImageViewController* imageViewer = [[ImageViewController alloc] initWithImageData:tappedItem];
[self presentViewController:imageViewer animated:YES completion:^{
[imageViewer loadImage];
}];
}
else if(condition2) {
DocumentViewController* docViewer = [[DocumentViewController alloc] init];
[self presentViewController:docViewer animated:YES completion:nil];
}
换句话说,根据 和 的状态,condition1
两个condition2
子类之一UIViewController
将以模态方式显示给用户。
在第二种情况下,一切都很好,但在第一种情况下,视图控制器没有显示通常的动画,显示它从屏幕底部滑入。相反,在短暂的延迟之后,它突然出现,覆盖了整个屏幕。另一个奇怪的是,在解雇动画中,视图控制器内的图像视图是透明的。
删除完成块没有效果。用 的实例替换我的视图控制器UIViewController
也没有任何效果,除了证明出于某种原因,动画也不适用于UIViewController
实例。
考虑到我可能在等方面做错了什么viewDidLoad
,我尝试注释掉视图加载/显示方法,但无济于事。
将视图控制器推送到导航堆栈不是一种选择,因为该应用程序有一个标签栏,我不想被看到。
更新
ImageViewController
用 a替换我的实例DocumentViewController
确实会产生动画。现在的问题变成了:我可以做些什么ImageViewController
来搞乱动画?