gpt4 book ai didi

ios - presentViewController :animated:completion: does not animate View Controller into view

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:48:17 24 4
gpt4 key购买 nike

我正在尝试在以下代码中调试一个非常奇怪的问题:

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];
}

换句话说,根据 condition1condition2 的状态,UIViewController 的两个子类之一将以模态方式显示给用户.

在第二种情况下,一切都很好,但在第一种情况下, View Controller 没有显示通常的动画,显示它从屏幕底部滑入。相反,在短暂的延迟之后,它突然出现,覆盖了整个屏幕。另一个奇怪的是,在解雇动画中, View Controller 内的 ImageView 是透明的。

删除完成 block 没有任何效果。用 UIViewController 的实例替换我的 View Controller 也没有任何效果,除了证明由于某种原因,动画也不适用于 UIViewController 实例。

我想也许我在 viewDidLoad 等中做错了什么,我尝试注释掉 View 加载/出现方法但无济于事。

将 View Controller 推到导航堆栈上不是一个选项,因为该应用程序有一个标签栏,我不想被看到。

更新

DocumentViewController 替换我的 ImageViewController 实例确实会产生动画。现在的问题是:我在 ImageViewController 中做了什么来弄乱动画?

最佳答案

我找到了解决方案,但我仍然不知道真正的原因是什么。

解决方法是为 UIViewController 的 View 设置背景颜色,在其 viewDidload 方法中以模态方式显示,例如

self.view.backgroundColor = [UIColor grayColor];

如果我弄清楚到底发生了什么,我会在这里发布。

关于ios - presentViewController :animated:completion: does not animate View Controller into view,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16738435/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com