gpt4 book ai didi

objective-c - 向未显示的 uiview 添加 subview

转载 作者:行者123 更新时间:2023-11-28 23:01:43 26 4
gpt4 key购买 nike

我正在处理一个奇怪的问题:我有一个 UIViewController 来处理要通过应用内购买下载的项目列表。

当用户选择要购买的产品时,所有的购买流程就开始了。在这个特定的时刻,我推送一个 UILabel 和一个进度条来显示下载的当前状态。

如果在此之前,用户选择进入应用程序的另一部分(即通过点击标签栏菜单中的项目),应用程序会从那里继续购买过程(减少到对用户说"is")几个对话框并输入 iTunes 商店帐户凭据)。

进程(附加到后台线程)平稳运行直到结束,但如果用户返回商店 View ,UILabel 和进度条不会显示,我的意思是,它们已初始化并正在运行但它们是不可见的。

在那种情况下有正确的行为方式吗?

我是否必须强制刷新 View ,或者我是否必须从 superView 中删除它们并再次将它们推回去?

提前致谢,希望我够清楚,否则不要害怕问,我很乐意以更深刻和清晰的方式解释我自己。

-k-

最佳答案

没有代码很难给你准确的解决方案。

一种可能是,当您从原来的 UIViewController 中移出时,系统确实卸载了该 Controller 上的 View 。通过这种卸载,进度条和标签可能没有被破坏(因为被你的 View Controller 过度保留或者在 viewDidUnload 方法中没有被 nil-ed)但是当你再次进入 View Controller 时, View 从头开始重新加载(通常来自 Nib )具有新的进度和标签。

所以您保留进度条和标签是正确的(即使有更好的方法可以达到相同的结果)但是您必须在 viewDidLoad 方法中将它们添加到 View Controller View 中。一种典型的方法是在字典中存储一个“事件的”进度条,当从 nib 重新加载 View 时,必须将其添加到其中。下载完成后,您可以从字典和 View 中删除进度。还有其他方法可以达到相同的结果,所以我的建议只是给你一个想法。

所以为了看我的回答是否正确,你必须检查viewDidUnload方法,在它上面添加一个断点,看看一旦它被触发,当你回到你原来的 View 时,进度条是否消失了还是不是。

关于objective-c - 向未显示的 uiview 添加 subview ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9893966/

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