gpt4 book ai didi

ios - UI 在连接到新 View Controller 时不会改变

转载 作者:行者123 更新时间:2023-11-30 14:16:56 27 4
gpt4 key购买 nike

在我的应用程序中,我正在从一个 View Controller (OptionsViewController,此处为 OVC)移动到另一个 View Controller (MainViewController,或 MVC)。在 OVC 中,我只有一些 slider 和开关,允许使用它们设置与 MVC 相关的各种选项。加载 MVC 时,它会实例化一个自定义标签,即 ScrollingLabel,它本质上只是由设备内的加速度计控制的 UIScrollView 内的 UILabel。

要在 OVC 和 MVC 之间切换,我只需使用一个带有 segue 的按钮来连接这两个按钮,将设置传递到 MVC。然后,MVC 使用给定的设置创建一个新的 ScrollingLabel,并开始滚动,以便用户可以使用加速计控制整个界面。在 MVC 上,我有一个重置按钮,它可以返回到 OVC 并从 super View 中删除 ScrollingLabel(通过从 super View 中删除其组成部分 UIScrollView)。通过这种方式,您可以在两个 Controller 之间来回切换。

所有这些都完美地工作,除了罕见但可重现的情况。当我将 ScrollingLabel 文本的 fontSize 设置为一个较大的值(例如 200,这意味着在横向模式下的任何给定时间,屏幕上每行可见约 10 个字符),然后切换回来OVC 和 MVC 之间通过各自的 segue 按钮发生异常。在字体大小为 200 时,我第四次尝试从 OVC 移动到 MVC(这意味着我已经成功地从 OVC 切换到 MVC 并返回 3 次),屏幕卡住了。

屏幕将卡在 OVC 的 View 上,并且有趣的是,在没有用户输入的情况下,屏幕上会随机生成大的黑色矩形,这些矩形再次随机地以近似频率闪烁出现和消失。 10+秒。还有一些异常。我向 MVC viewDidLoad() 添加了一些打印语句,是的,即使在第四次 MVC IS BEING LOADED 上,但 View 仍保留在 OVC 上,现在是不可交互的,并开发了上述黑色矩形周期性地出现。

我对此感到困惑,因此进一步测试。第四次之后,我倾斜了 iPad,这样,如果 MVC 实际上以某种方式加载到 OVC 后面,则其 ScrollingLabel 中的文本将会滚动,并且我可以检查其内容偏移量是否已更改。然后我决定使用主页按钮退出应用程序,然后通过单击应用程序图标重新进入。令我惊讶的是,现在它向 MVC 打开,并且我使用加速度计正确移动了文本。这意味着 MVC 确实在 OVC 后面加载,并从加速度计获取数据,但由于某种原因,OVC 仍保留在屏幕上。

更令人困惑的是,在完成整个“使用主页按钮退出,通过应用程序图标重新进入”技巧后,问题没有再次发生,直到我从 XCode 重建,此时整个过程将重置,使用第四个 OVC ->MVC 转换卡住。

所以现在我很困惑,真的不知道为什么会出现这样的发展。我想,当我重置回 OVC 时,我可能没有正确地释放 MVC 中的 ScrollingLabel ,对于足够大的 fontSize 来说,这可能会非常昂贵,但是当我每次重新输入时都重新创建标签MVC 我不确定。任何帮助都将非常感激,我很乐意根据需要提供代码或更多信息。

tl;dr - 从一个 View Controller 到另一个 View Controller 的转场在屏幕上留下了原始 View Controller 图像,但仍然允许控制正确的 View Controller 元素,而无需任何视觉指示。

最佳答案

您如何从 OVC 切换回 MVC?

如果您不使用展开转场,那么每次转回时,您都会在之前的 OVC/MVC 对之上堆叠 OVC 的新实例。

在其 viewWillAppear 中记录 OVC 的地址。我打赌你会发现每次都会得到一个新的。

如果您执行导航 Controller 推送,请使用 IBAction 并对其进行 popViewController 调用。

如果您正在执行模态 presentViewController:animated:completion:,请在 OVC 的后退按钮上使用调用 dismissViewController:animated:Completion: 的 IBAction

>

或者实现展开转场。

关于ios - UI 在连接到新 View Controller 时不会改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31038646/

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