将 iPhone 应用程序转换为 iPad,然后在 iPad 中使用 splitview?
Posted
技术标签:
【中文标题】将 iPhone 应用程序转换为 iPad,然后在 iPad 中使用 splitview?【英文标题】:Converting iPhone application into iPad, and then use splitview in iPad? 【发布时间】:2012-06-06 14:13:02 【问题描述】:我已经为 iPhone 制作了一个日记应用程序,我想让它通用(iPhone 和 iPad)。
当应用程序在 iPad 中启动时,我希望它使用拆分视图控制器。
我有两节课。第一个是“Rootviewcontroller”,第二个是“Detailview”控制器。在这两个类中,我都使用导航控制器。在 iPhone 中,当应用程序启动时,rootviewcontroller 是可见的。使用导航控制器,用户可以移动到详细视图。
在 iPad 上,我希望根视图控制器位于拆分视图控制器的左侧,而详细视图位于右侧。
【问题讨论】:
【参考方案1】:如果您查看 Apple 文档,则只需在初始化 UISplitViewController 时分配两个视图控制器。这是 Apple 文档的链接 - http://developer.apple.com/library/ios/#documentation/uikit/reference/UISplitViewController_class/Reference/Reference.html
这是一个来自我们实际 iOS 应用程序的示例(更改了一些变量名称以使其易于理解)。我们基本上确定设备是否是 iPad,然后构建主导航控制器。
detailNav 是使用“我们项目的详细视图控制器”创建的导航控制器
masterNav 是我们 iPhone 使用的导航控制器。它在 tableView 上启动用户,允许他们选择一个项目以前进到详细视图。
我们将这两个都分配给一个数组并初始化拆分视图控制器。
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad)
UINavigationController *detailNav = [[UINavigationController alloc] initWithRootViewController:detailVC];
NSArray *vcs = [NSArray arrayWithObjects:masterNav, detailNav, nil];
UISplitViewController *splitViewController = [[UISplitViewController alloc] init];
[splitViewController detailVC];
[splitViewController setViewControllers:vcs];
[[self window] setRootViewController:splitViewController];
else
[[self window] setRootViewController:masterNav];
这很可能不是最佳代码或最佳实践,因为我和我的团队对 iOS 世界还很陌生,但我希望它有所帮助。此代码在生产中的实时应用上运行。
【讨论】:
【参考方案2】:这里是关于如何做到这一点的苹果文档:http://developer.apple.com/library/ios/#DOCUMENTATION/iPhone/Conceptual/iPhoneOSProgrammingGuide/AdvancedAppTricks/AdvancedAppTricks.html
要在 iPad 视图控制器中实现拆分视图,如果您想更改拆分视图所在的一侧,您可以将其子类化并在右侧重绘它。希望这会有所帮助!
【讨论】:
以上是关于将 iPhone 应用程序转换为 iPad,然后在 iPad 中使用 splitview?的主要内容,如果未能解决你的问题,请参考以下文章