gpt4 book ai didi

cocoa-touch - UIViewController "inside"iPad 上的 UIView

转载 作者:行者123 更新时间:2023-12-04 06:40:51 24 4
gpt4 key购买 nike

尽管这个问题的标题,我很清楚 UIViewControllers 不能放在 UIViews 中。

根据 Apple 的文档,UIViewControllers 控制 iPhone 应用程序中的全屏。但是,在 iPad 上,它们也可用于控制弹出窗口和拆分 View 以及全屏的内容。

在我的设计中,许多非常复杂的 View ,每个 View 都有自己的 UIViewController,将在屏幕中心的 iPhone 大小的矩形中交换进出。如果我要使用弹出框,这将是微不足道的,但我不想要箭头或随附的黑色边框。

针对这种情况,我想到了两种可能:

  • 将 View Controller 放在一个新的 UIWindow 中
  • 为这些 View 使用不从 UIViewController 继承的 Controller 类

  • 这些方法中哪一种最不可能引起 future 的头痛?请让我知道是否有我没有想到的更好的方法来做到这一点。

    最佳答案

    我使用不是从 UIViewController 继承的 Controller 类.无法在您的 UI 层次结构中任意嵌套实际的 View Controller 是 SDK 中的一个不幸的不公平之处,但我发现即使拥有真正复杂的人造 Controller 也是合理的。我只是根据需要查看来自真实根 Controller 的关键消息,并以类似的方式构建代码,就好像它是真实的 View Controller 一样。这基本上也是苹果的推荐。 (目前找不到文档引用。)

    如果您有很多这样的子屏幕可管理 View ,您可能可以构建一个非常灵活的 MyViewController 类,它继承自 NSObject,然后是一个继承自 UIViewController 的 MyBaseViewController,它知道如何生成 MyViewControllers 并为您适本地设置所有消息. (我自己还不需要这种抽象级别。)

    使用子屏幕大小的 UIWindows 不是标准解决方案,我会对此保持警惕。同样,不要试图只是冲撞而无论如何都要使用 UIViewControllers。你会发现,如果你这样做,他们有时会表现得有时会表现得不正常,你会浪费很多时间来整理这种脆弱的互动。

    关于cocoa-touch - UIViewController "inside"iPad 上的 UIView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4259649/

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