Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/119.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 将iPhone应用程序转换为iPad,然后在iPad中使用splitview?_Objective C_Ios_Uitableview_Uisplitviewcontroller - Fatal编程技术网

Objective c 将iPhone应用程序转换为iPad,然后在iPad中使用splitview?

Objective c 将iPhone应用程序转换为iPad,然后在iPad中使用splitview?,objective-c,ios,uitableview,uisplitviewcontroller,Objective C,Ios,Uitableview,Uisplitviewcontroller,我已经为iPhone制作了一个日记应用程序,我想让它具有通用性(iPhone和iPad) 当应用程序在iPad上启动时,我希望它使用一个分割视图控制器 我有两节课。第一个是“Rootviewcontroller”,第二个是“Detailview”控制器。在这两个类中,我都使用导航控制器。在iPhone中,当应用程序启动时,rootviewcontroller可见。使用导航控制器,用户可以移动到详细视图 在iPad上,我希望根视图控制器位于分割视图控制器的左侧,细节视图位于右侧 以下是关于如何操作

我已经为iPhone制作了一个日记应用程序,我想让它具有通用性(iPhone和iPad)

当应用程序在iPad上启动时,我希望它使用一个分割视图控制器

我有两节课。第一个是“Rootviewcontroller”,第二个是“Detailview”控制器。在这两个类中,我都使用导航控制器。在iPhone中,当应用程序启动时,rootviewcontroller可见。使用导航控制器,用户可以移动到详细视图


在iPad上,我希望根视图控制器位于分割视图控制器的左侧,细节视图位于右侧

以下是关于如何操作的文档:


要实现拆分视图,它位于iPad view控制器中,如果您想更改拆分视图所在的一侧,可以对其进行子类化,并在右侧重新绘制。希望这有帮助

如果查看Apple文档,则在初始化UISplitViewController时只需分配双视图控制器。以下是苹果文档的链接-

下面是一个来自实际iOS应用程序的示例(更改了一些变量名以便于理解)。我们基本上确定设备是否是iPad,然后构建主导航控制器

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];
}
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世界还是相当陌生的,但我希望它能有所帮助。此代码正在生产中的live应用程序上运行