如何将UIViewController推送到UISplitViewController

时间:2014-04-29 18:35:54

标签: ios uiviewcontroller

我想将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。有谁能帮我解决这个问题?任何帮助都感激不尽。

4 个答案:

答案 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;
}