iOS Master Detail,如何在iPad中使用不同的DetailViewController
我有一个主细节iOS应用程序,由标准XCode模板和故事板构建而成。我需要在大多数项目上显示一个带有浏览器的视图,并且在用户单击主控形状的UITableView中的“设置”项目时显示一个设置窗体(使用FXForms) 我在iPhone上找到了一种方法,但在iPad上找不到。在iPhone情节提要中,我创建了另一个视图控制器,并从主视图控制器到新视图控制器建立了另一个segue连接。然后在iOS Master Detail,如何在iPad中使用不同的DetailViewController,ipad,uitableview,uistoryboard,uisplitviewcontroller,uistoryboardsegue,Ipad,Uitableview,Uistoryboard,Uisplitviewcontroller,Uistoryboardsegue,我有一个主细节iOS应用程序,由标准XCode模板和故事板构建而成。我需要在大多数项目上显示一个带有浏览器的视图,并且在用户单击主控形状的UITableView中的“设置”项目时显示一个设置窗体(使用FXForms) 我在iPhone上找到了一种方法,但在iPad上找不到。在iPhone情节提要中,我创建了另一个视图控制器,并从主视图控制器到新视图控制器建立了另一个segue连接。然后在didSelectRowAtIndexPath if(indexPath.section == 0 &
didSelectRowAtIndexPath
if(indexPath.section == 0 && indexPath.row == 2) // settings
[self performSegueWithIdentifier:@"showSettings" sender:self];
else
[self performSegueWithIdentifier:@"showDetail" sender:self];
这样,当我单击“设置”时,“设置”视图就就位了。来回导航也很有效
然而,在iPad中,detailViewController似乎总是在SplitViewController的右侧。如何修改情节提要和/或代码以将默认视图切换为设置,然后再次切换回
我还发现,XCode中的默认模板为iPad情节提要创建了“关系”序列,iPhone情节提要中没有这种类型,不能像我在iPhone案例中那样命名为“showSettings”或“showDetail”。从对原始帖子的评论中,我发现:
-(void)tableView:(UITableView*)tableView中为特定行选择了rowatindexpath:(nsindepath*)indepath
)。我备份了self.splitViewController.viewControllers
的当前lastObject,以便在Master中还原表视图的其他行
FXFormViewController *controller = [[FXFormViewController alloc] init];
IBSettingsForm *settingsForm = [[IBSettingsForm alloc] init];
settingsForm.fontSize = 12;
controller.formController.form = settingsForm;
// this is created so that my new view would have a navigation bar
UINavigationController *navigationController = [[UINavigationController alloc] init];
[navigationController pushViewController:controller animated:false];
self.splitViewController.viewControllers = [NSArray arrayWithObjects:[self.splitViewController.viewControllers objectAtIndex:0],
navigationController, nil];
您是否可以选择对两者使用相同的故事板?您根本不想要SplitView,还是只是试图替换SplitView而不是SplitView的一部分?XCode在标准主细节示例中为iPhone和iPad创建了两个不同的故事板。我不认为iPhone可以共享同一个故事板,因为iPhone中的主控细节就像从一个全屏视图切换到另一个,而iPad使用的是“侧边栏”——类似于主控。我想找到一种方法,在iPad上替换SplitView的一部分。使用XCode 6,你可以在iPhone和iPad上使用单一情节提要,如果你的目标是iOS8,你甚至可以在iPhone和iPad上使用UISplitViewController。@SachinPalewar-如果在iPhone上使用UISplitViewController,可能不再是主细节。我将通过更换detailViewController进行更多测试,并在本期文章中提供解决方案。谢谢。我还做了一个多细节的样品,你可以看看。