我已经为 iPhone 制作了一个日记应用程序,我想让它通用(iPhone 和 iPad)。
当应用程序在 iPad 中启动时,我希望它使用 Split View Controller 。
我有两个类(class)。第一个是“Rootviewcontroller”,第二个是“Detailview” Controller 。在这两个类中,我都使用导航 Controller 。在 iPhone 中,当应用程序启动时,rootviewcontroller 是可见的。使用导航 Controller ,用户可以移动到详细 View 。
在 iPad 上,我希望 Root View Controller 位于 Split View Controller 的左侧,详细 View 位于右侧。
最佳答案
如果查看 Apple 文档,您只需在初始化 UISplitViewController 时分配两个 View Controller 。这是 Apple 文档的链接 - http://developer.apple.com/library/ios/#documentation/uikit/reference/UISplitViewController_class/Reference/Reference.html
这是一个来 self 们实际 iOS 应用程序的示例(更改了一些变量名称以使其易于理解)。我们基本上确定设备是否为 iPad,然后构建主导航 Controller 。
detailNav 是使用“我们项目的详细 View Controller ”创建的导航 Controller
masterNav 是与我们的 iPhone 一起使用的导航 Controller 。它在 tableView 上启动用户,允许他们选择一个项目以前进到详细 View 。
我们将这两个分配给一个数组并初始化 Split View Controller 。
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 世界还很陌生,但我希望它能有所帮助。此代码在生产中的实时应用程序上运行。
关于objective-c - 将 iPhone 应用程序转换为 iPad,然后在 iPad 中使用 splitview?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10915985/