我需要创建一个以我手动定制的基本视图开头的拆分视图应用程序。然后,我需要过渡到SplitView或将主/明细表视图推送到用于电话实现的堆栈中。
我计划使用的策略是将基本视图放入SplitView控制器的详细信息窗格中,而在该视图中时,只需按其各自的方向隐藏左侧窗格的侧面板和按钮即可。
有没有更好的办法?我可以使用“普通”视图作为根视图,然后以编程方式将其切换到UISplitView吗?
对于手机版本-这并不是真正的问题。由于导航控制器是根视图控制器-我可以将更多视图推入堆栈。
对于iPad-您无法将UISplitView控制器推入导航堆栈。我真的很想这样做,所以我有一些“后退”的概念。我可以以编程方式创建它-但在我这样做之前-如果其他选项存在,我会对它们感兴趣。
我想为此应用程序使用Storyboards-目标版本为iOS 5-ARC。
最佳答案
我通过替换应用程序的根目录来完成此操作。作为第一个屏幕,我有一个LoginViewController
,登录成功后,用ViewController
切换该UISplitViewController
。您也可以制作动画。
编辑:
这是我来自UIStoryboardSegue
子类的代码:
- (void) perform
{
AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
UIViewController *sourceViewController = (UIViewController *)self.sourceViewController;
UISplitViewController *destinationViewController = (UISplitViewController *)self.destinationViewController;
UIWindow *window = appDelegate.window;
window.rootViewController = destinationViewController;
window.rootViewController = sourceViewController;
[UIView transitionWithView:sourceViewController.view.window
duration:0.5
options:UIViewAnimationOptionTransitionFlipFromLeft
animations:^{
window.rootViewController = destinationViewController;
}
completion:^(BOOL finished){
}];
}