gpt4 book ai didi

ios - Split View Controller 显示模式更改后更新应用程序用户界面?

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:03:41 26 4
gpt4 key购买 nike

当 Split View Controller 的显示模式发生变化时,我需要能够更新我的应用程序的用户界面。具体来说,如果它从展开界面变为折叠界面,我需要做一些事情,如果它从折叠界面变为展开界面,我也需要做一些事情。

我目前正在通过 traitCollectionDidChange 处理这个问题,虽然这似乎对我的两个 Split View Controller 有效,但第三个无效。似乎这个方法调用得太早了,所以当我检查 displayMode 以查看它是否为 UISplitViewcontrollerDisplayModeAllVisible 时, Split View尚未更新为新的显示模式.所以它最终删除了我真正想要添加的按钮,或者在我想删除它们时添加它们。如果我在 0.1 秒后延迟检查显示模式,displayMode 值会正确表示旋转完成并采取适当操作时的状态。

我的问题是,是否有更好的方法可用于更新我的应用程序的 UI,或许是否有办法知道 displayMode 何时更改?我不想冒险过早调用它,但我也不想等到轮换完成后才更新 UI。延迟检查是一种非常脆弱的解决方案,很容易导致意外行为,有时可能无法正常工作。

最佳答案

更强大的解决方案是在 UISplitViewControllerDelegate 中使用 primaryViewControllerForCollapsingSplitViewController:primaryViewControllerForExpandingSplitViewController:

从文档中说

If you do not implement this method, or if your implementation returns nil, the split view controller chooses its primary view controller as the one to display.

因此,实现这些方法来跟踪折叠和展开,然后返回 nil,您仍然会得到默认行为。

关于ios - Split View Controller 显示模式更改后更新应用程序用户界面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26168206/

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