如何为 iOS 应用创建自定义容器视图?

Posted

技术标签:

【中文标题】如何为 iOS 应用创建自定义容器视图?【英文标题】:How do I create a custom container view for an iOS App? 【发布时间】:2012-05-23 14:18:14 【问题描述】:

我开始开发一个 iPad 应用程序,我希望顶部有一个工具栏,它会在其下方显示不同的视图,如下图所示:

因此,当按下每个按钮时,工具栏应保持在原位,并且不同的视图控制器应在该空间中显示其视图。我通读了 Apples ViewController 编程指南,似乎这是可能的,但我只是不知何故没有获得让视图控制器在底部矩形内显示其视图所需的实际方法。

拥有一个管理工具栏的容器视图,然后创建一个视图控制器以在该下部矩形内显示子视图是否合理?

编辑:

我想做一些事情:

-(IBAction)hitMapButton
    MapViewController *mapView = [[MapViewController alloc] initWithNibName:@"MapView" bundle:nil];
    [self addChildViewController:mapView];
    [mapView release];

但我不知道如何实际绘制视图?

【问题讨论】:

为什么不能在不同的按钮操作上使用不同的views,而不是viewController 【参考方案1】:

使用“创建标签栏”搜索 Apple 文档。您会找到几个文档:以编程方式创建、使用 segue 进行创建等。您还可以根据该搜索查看许多示例项目,例如“Tabster”(一个有点过时但肯定会帮助您 - 将目标编辑为“iPad”)。

您可以通过创建一个新的 Xcode 项目并选择“选项卡式应用程序”来获得一个工作起点

请注意,UITabBarController 将标签栏放在底部 - 如果您正在考虑将其放在顶部,您还应该阅读“用户体验指南”

【讨论】:

是的,我不想使用 Apple 的 UITabBarController。我想在顶部有一个自定义标签栏。我只需要知道允许我从视图控制器中实例化视图控制器的方法调用,然后让它在容器视图设置的上下文中绘制它的视图。 好的。 Apple 文档和示例代码中有许多示例。查找 UITableViewController 的一些示例代码并查看 selectRowAtIndex: 方法 - 通常视图控制器在此处实例化(并非总是如此,但经常如此)。一种常见的方法是使用 IBOutlet 从容器视图链接 XIB 文件中的所有控制器 - 然后你不实例化它们,ios 确实并且很聪明地延迟控制器视图的实例化(以节省内存)。跨度>

以上是关于如何为 iOS 应用创建自定义容器视图?的主要内容,如果未能解决你的问题,请参考以下文章

如何为列表视图创建自定义适配器?获取 ResourceNotFoundException

如何为地理视图(散景)创建自定义颜色图?

如何为列表视图创建自定义光标适配器以用于图像和文本?

如何为整个应用自定义 UINavigationBar?

如何为 android 的画中画模式创建自定义屏幕尺寸?

如何为 MkAnnotation View 自定义视图,就像表格视图的自定义单元格一样?