我想将UINavigationController
对象推送到UISplitViewController
,但我收到以下消息:
2014-04-30 02:25:11.215 test_demo[483:70b] Split View Controllers cannot be pushed to a Navigation Controller <UINavigationController: 0x8d34360>.
这是我的推送方式:
- (IBAction)toggleToSplitView:(id)sender {
SplitViewController *splitViewController = [[SplitViewController alloc] init];
[self.navigationController pushViewController:splitViewController animated:YES];
}
事实上,我想设计一个UIViewController
的登录视图,然后,我想推送到UISplitViewController
。有谁能帮我解决这个问题?任何帮助都感激不尽。
答案 0 :(得分:1)
人。我不认为将UIViewController推送到UISplitViewController是个好主意。如果你必须像这样做。你可以使用这种方法:
SplitViewController *splitViewController = [[SplitViewController alloc] init];
[self.view.window setRootViewController:splitViewController];
但是,我认为这不是一个完美的解决方案。特别是,当你需要在不同的ViewController之间推送时添加一些自定义动画。因此,也许您应该自定义splitView并将其添加到UIViewController。 github中有许多示例代码用于自定义UISplitViewController。
https://github.com/Alterplay/APSplitViewController
https://github.com/palaniraja/cUISplitViewController
我希望对你有所帮助。
答案 1 :(得分:1)
正如消息所示,你不能这样做。
您可以做的是首先显示SplitViewController
,然后在没有动画的情况下显示LoginView
的{{1}}。
答案 2 :(得分:0)
实际上,您正试图将UISplitViewController
推入UINavigationController
对象。反之亦然。并且不允许这样做。那是什么错误信息。
UISplitViewController
是一个特定的控制器,只能用作导航堆栈中的根视图控制器。此外,它只能在iPad应用程序中使用。
答案 3 :(得分:0)
-(void)pushView :(UIViewController *)splitViewController{
self.rootViewControllerPre=self.window.rootViewController;
_window.rootViewController=splitViewController;
}
-(void)popView{
_window.rootViewController=_rootViewControllerPre;
}