HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了iphone – UISplitViewController和复杂视图层次结构大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在做一个iPad技术演示,我遇到了一个严重的技术问题.

我有一个应用程序的概念,利用UISplitViewController,但不是整个应用程序的主要控制器.

应用程序流程可以大致描述为:

主屏幕(UIViewController)
列表 – >细节“目录”(UISplitViewController)
超细节屏幕(UIViewController,但可以想象也是SplitView的孩子).

问题在于Home和Catalog之间的流程.一旦UISplitViewController视图被添加到UIWindow,它开始抛出嘶嘶作风.

问题可以归纳如下:

当UISplitView生成一个popover视图时,它似乎被锁定到其父视图.从UIWindow子视图中删除UISplitView时,您将获得一个CoreGraphics异常,并且该视图将无法被删除.

添加其他视图(大概在这种情况下,您返回的主屏幕),它们不会自动转换,而是由于CG异常而无法删除的UISplitView继续响应旋转,导致可怕的渲染错误,不能只是“处理”.此时,添加任何视图,甚至重新添加SplitView会导致一系列渲染错误.

然后我尝试简单地将SplitView作为“底部”视图存在,并保持添加删除主屏幕,但是由于SplitView支配定向更改调用,因此主屏幕不会旋转,甚至如果你打电话[homeScreen becomeFirstResponder]

您不能将SplitView放置到像UINavigationController这样的层次结构中,您将得到一个彻底的运行时错误,因此该选项不在表中.模式看起来很糟糕,反正都是不鼓励的.

在这个时候我的推测是处理这个问题的唯一正确方法是以某种方式“解除”UISplitViewController,以便可以从其父视图中删除而不会抛出未处理的异常,但我不知道如何.

如果您想要看到一个完全符合我需要做的应用程序,请查看iPad应用商店中的GILT Groupe.他们把它们拉下来,但是似乎已经编写了一个完整的自定义视图转换集.

帮助将不胜感激.

解决方法

苹果 states

这的确意味着它应该是root视图,而不是另一个视图的子视图.即使他们补充说:

这并不意味着您可以将其添加为任何其他控制器的子视图. (抱歉)

我有一种感觉,你正在经历的是尝试这样做的副产品.我实际上感到惊讶的是,GILT Groupe的应用没有被拒绝.苹果公司倾向于严格执行这些HIG指南.当您尝试将它们添加到NavigationController时,它们(正如您已经发现)导致了相当糟糕的运行时错误.

大佬总结

以上是大佬教程为你收集整理的iphone – UISplitViewController和复杂视图层次结构全部内容,希望文章能够帮你解决iphone – UISplitViewController和复杂视图层次结构所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。