【问题标题】:Can I present a UIViewController modally offscreen?我可以在屏幕外显示 UIViewController 吗?
【发布时间】:2015-03-11 19:42:15
【问题描述】:

我很想知道是否可以在屏幕外显示 uiviewcontroller,以便视图控制器相信它在屏幕上,而用户什么都看不到。

我尝试过手动调用、viewDidLoad、loadViews ... 按照苹果调用这些方法的相同顺序,但效果不佳。

想法?!

【问题讨论】:

  • 另一种选择是创建一个新的UIWindow,并将您的 VC 设置为rootViewController。但我觉得我必须要问……你为什么要在屏幕外展示一个 VC?如果它不需要用户输入来做任何你想做的事情,它表明UIViewController 是错误的类。
  • @pbasdf 我无法真正创建 ViewController,因为它是苹果的视图控制器之一(如电子邮件视图控制器),我需要它的功能,而不是它的 UI :)
  • 你想用这个达到什么目的?
  • 我正在尝试将苹果 UI 中的一些功能集成到我自己的 UI 中,我设法以编程方式与 Apple 的 UI 进行交互,现在我只需要将其移除即可。

标签: ios objective-c cocoa-touch uiviewcontroller modalviewcontroller


【解决方案1】:

我相信您想建立(或伪造)父视图控制器/子视图控制器的关系。您实际上不应该直接调用这些方法,正如您在 Apple's docs on beginAppearanceTransition:animated: 中看到的那样。

如果你是一个父 viewController,你负责手动管理你孩子的视图。在您的情况下,您只是想说服它正在显示它(我支持它,因为我喜欢 hacky 的东西,但一般来说您应该小心屏幕外渲染),所以您可以尝试它直到找到合适的数量对你的孩子说谎。

【讨论】:

  • 我今天要测试一下,祝我好运:)
【解决方案2】:

创建自定义转场并将目标控制器的框架设置为离屏。我什至认为您不需要制作自定义转场动画,因为控制器一直不在屏幕上。

我认为源视图控制器仍然在屏幕上并接收手势会出现问题。

既然视图控制器不在屏幕上,有什么理由需要它成为一个 uiviewcontroller 吗?

【讨论】:

  • 问题是我无法通过故事板创建目标视图控制器的实例,它是苹果的 ViewController 之一,例如文档视图控制器。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-12-09
  • 2021-04-15
  • 1970-01-01
  • 2018-09-13
  • 2021-10-16
  • 2017-12-16
  • 1970-01-01
相关资源
最近更新 更多