我有UIViewController
两个部分:
一个
UIView
具有多个水平排列的下拉菜单并在顶部具有缩略图的栏
因为第二部分有点复杂,所以我决定它是一个UIViewController
,但现在我有一些担忧:
因为我有下拉菜单,所以菜单会超出栏的范围。我该如何处理?
有一个
UIViewController
inside a是一个好方法UIViewController
吗?如何实现下拉菜单?据我所知IOS没有下拉菜单。
我有UIViewController
两个部分:
一个UIView
具有多个水平排列的下拉菜单并在顶部具有缩略图的栏
因为第二部分有点复杂,所以我决定它是一个UIViewController
,但现在我有一些担忧:
因为我有下拉菜单,所以菜单会超出栏的范围。我该如何处理?
有一个UIViewController
inside a是一个好方法UIViewController
吗?
如何实现下拉菜单?据我所知IOS没有下拉菜单。
要在另一个控制器中使用控制器,您需要使用自定义容器视图控制器。
请参阅iOS 视图控制器编程指南的创建自定义容器视图控制器部分。
另请参阅UIViewController 类参考的相应实现容器控制器部分。
另请参阅 WWDC 2011 视频,Implementing UIViewController Containment
在 iOS 6 中,您可以使用自动使用嵌入 segues 的容器视图设置故事板addChildViewController
,如果您正在使用故事板,则无需显式调用等。查看 Interface Builder 中的“容器视图”对象。如果您要更改子控制器,则必须使用上述链接中提到的 API,但对于第一个子控制器的配置,您可以在 iOS 6 的 Interface Builder 中进行设置。
关于下拉菜单,我认为它们不适用于触摸界面。有一些替代方案,例如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/
在这种情况下,设置控制器遏制可能是正确的方法。唯一的限制是它适用于 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
和两个不同的视图。