gpt4 book ai didi

uinavigationcontroller - iOS 9 : Frame no longer set in viewWillAppear after UINavigationController pushViewController

转载 作者:行者123 更新时间:2023-12-03 14:58:57 29 4
gpt4 key购买 nike

我正在尝试解决从 iOS 9 开始出现的 View 放置错误。我正在从 xib 文件(非自动布局)实例化 View Controller ,然后将其推送到我的 UINavigationController 上。 .

问题是当 View Controller 的 viewWillAppear方法被调用,它的框架还没有调整到导航 Controller 的大小,仍然是在 xib 文件中设置的。现在直到 viewDidAppear 才能正确设置.

这完全搞砸了我的代码。有没有人确切地知道导致这种情况发生了什么变化以及处理它的最佳方法是什么?不想等到viewDidAppear因为这看起来很糟糕并且会导致糟糕的用户体验。

最佳答案

我也在寻找最佳解决方案。

我的临时方法是调用“viewDidLayoutSubviews”中“viewDidAppear”中的代码。这样,一旦设置了框架,我的代码就会被调用。

但是,请确保添加一个 bool 值或其他内容,以便每次调用 viewDidLayoutSubviews 时都不会调用您的代码

-(void)viewDidLayoutSubviews{
if (didLayoutSubviews == NO){
didLayoutSubviews = YES;
// perform code that was in viewWillAppear
}
}

关于uinavigationcontroller - iOS 9 : Frame no longer set in viewWillAppear after UINavigationController pushViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32662851/

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