2

我有UIViewController两个部分:

  • 一个UIView

  • 具有多个水平排列的下拉菜单并在顶部具有缩略图的栏

因为第二部分有点复杂,所以我决定它是一个UIViewController,但现在我有一些担忧:

  • 因为我有下拉菜单,所以菜单会超出栏的范围。我该如何处理?

  • 有一个UIViewControllerinside a是一个好方法UIViewController吗?

  • 如何实现下拉菜单?据我所知IOS没有下拉菜单。

4

3 回答 3

1

要在另一个控制器中使用控制器,您需要使用自定义容器视图控制器。

  • 请参阅iOS 视图控制器编程指南的创建自定义容器视图控制器部分。

  • 另请参阅UIViewController 类参考的相应实现容器控制器部分。

  • 另请参阅 WWDC 2011 视频,Implementing UIViewController Containment

  • 在 iOS 6 中,您可以使用自动使用嵌入 segues 的容器视图设置故事板addChildViewController,如果您正在使用故事板,则无需显式调用等。查看 Interface Builder 中的“容器视图”对象。如果您要更改子控制器,则必须使用上述链接中提到的 API,但对于第一个子控制器的配置,您可以在 iOS 6 的 Interface Builder 中进行设置。

于 2013-01-08T21:53:08.447 回答
0

关于下拉菜单,我认为它们不适用于触摸界面。有一些替代方案,例如UISegmentedControl类的实例。在这里您可以阅读有关分段控件的 Apple UI 设计指南:http: //developer.apple.com/library/ios/#documentation/userexperience/conceptual/mobilehig/UIElementGuidelines/UIElementGuidelines.html#//apple_ref/doc/uid/TP40006556 -CH13-SW1。如果您详细解释一下您想要的 UI 功能,我们可以从用户体验的角度为您提供更好的选择。

如果您坚持使用下拉菜单,则可以使用一些第三方控件库;例如: http: //www.cocoacontrols.com/

于 2013-01-08T22:05:27.957 回答
0

在这种情况下,设置控制器遏制可能是正确的方法。唯一的限制是它适用于 iOS 5 及更高版本。

在这里,你必须做的:

// add as child VC
[self addChildViewController:_barViewController];

// add it to container view, calls willMoveToParentViewController for us
[_containerView addSubview:_barViewController.view];

// notify it that move is done
[_barViewController didMoveToParentViewController:self];

在这里,您可以找到包含 ViewControllers的其他信息。显然 Apple doc 是您的朋友。此外,如果你搜索“uiviewcontroller containment”,你会发现很多东西。

如果您的应用需要针对 iOS 5 不是最低要求的设备,您应该依赖一个UIViewController和两个不同的视图。

于 2013-01-08T21:53:58.430 回答