gpt4 book ai didi

iOS 确保 View Controller 转换结束

转载 作者:行者123 更新时间:2023-11-29 03:51:35 24 4
gpt4 key购买 nike

我的应用程序中有很多回合制游戏,我使用相同的动画来声明起始玩家。

在viewDidLoad的最后,我放置了声明代码。它会截取当前 View 的屏幕截图,然后将其稍微模糊,并且标签会显示起始玩家的名称。问题是有时我很快就得到了上一个 View 的屏幕截图,并且标 checkout 现在上一个 View 的模糊屏幕截图上。

我的 viewDidLoad 看起来像这样:

-(void) viewDidLoad
{
[super viewDidLoad];

[self initializeThings];

[self layoutUI]; //In some of the games this part requires heavy processing,
//ie laying out a 2D array of buttons (20x20=400 of them)

[self showStartingPlayer];
}

我在所有 VC 中使用默认的过渡样式覆盖垂直。我尝试通过使用带有延迟的执行选择器来调用 [self showStartingPlayer]; ,但不同的设备需要不同的延迟值,因此这不是一个可靠的解决方案。我可以在 viewcontroller 生命周期中使用任何其他方法来代替 viewDidLoad 或执行此类操作的任何实用方法吗?

最佳答案

如果您使用的是presentViewController:animated:completion:,我将利用完成 block 来通知 View Controller 转换已完成。

例如,您可以向 View Controller 添加一个名为 -(void)wasJustPresented 的公共(public)方法,该方法调用必要的 UI 布局。

然后,在完成 block 中调用它。例如:

[self presentViewController:newVC
animated:YES
completion:^(void){
[newVC wasJustPresented];
}];

这将确保您的 View Controller 在呈现完成后立即收到通知。

关于iOS 确保 View Controller 转换结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17005012/

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