【问题标题】:Possible to present UIView without UIViewController in UIPopoverController?可以在 UIPopoverController 中呈现没有 UIViewController 的 UIView 吗?
【发布时间】:2012-03-12 20:23:09
【问题描述】:

是否可以在没有UIViewController 管理UIView 的情况下在UIPopoverController 中快速呈现UIView

目前我有一个“DelegateViewController”可以让我的观点通过。然后我使用该控制器进行演示。但我想知道是否有更简单的方法?

【问题讨论】:

    标签: objective-c ios cocoa-touch uikit


    【解决方案1】:

    如果您有UIView,那么您可以轻松创建一个普通的UIViewController 作为容器。

    UIViewController* controller = [[[UIViewController alloc] init] autorelease];
    controller.view = myView;
    

    【讨论】:

      【解决方案2】:

      是否可以在 UIPopoverController 中快速呈现 UIView 没有 UIViewController 管理 UIView?

      否。 UIPopoverController 管理视图控制器,而不是视图。创建弹出框控制器时,您必须提供将管理内容的视图控制器。这并不意味着您必须在使用弹出框的每个地方创建一个特殊的视图控制器子类——正如bendytree 指出的那样,如果您愿意,您可以使用普通的旧 UIViewController。但是你不能只向 UIPopoverController 传递一个视图——它没有办法接受它,如果接受了也不知道该怎么处理它。

      【讨论】:

        【解决方案3】:

        为视图设置UIViewController 通常是有意义的,因为控制器会处理视图的所有交互和设置。尽管在某些情况下您可以在屏幕上放置“裸”视图,但 UIPopoverController 旨在与 UIViewController 一起使用,并且 ViewController 范例在 iOS 世界中非常成熟并受到鼓励,因此即使您认为自己不这样做似乎需要一个视图控制器,拥有它应该不会有害,而且您可能总是想扩展当前的功能,对吧?

        请注意:如果您使用的是 iOS 5.0,则在 Popovers 中创建视图非常简单,只需拖放视图控制器并将它们连接到情节提要上即可。示例:How to create Popovers with Xcode Storyboards

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-11-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-08-08
          相关资源
          最近更新 更多