使用ECSlidingViewController在两个NavigationController之间进行转换

时间:2013-12-10 02:25:14

标签: ios objective-c ios7 uinavigationcontroller ecslidingviewcontroller

我正在努力完成这样的事情:

我的设置是这样的:

  

我有一个Storyboard安装程序,SlidingViewController作为RootViewController。左侧面板充当导航菜单。从这个菜单中,我有Segues到不同的NavigationControllers enter image description here

我想做什么:

  

我想在不同的NavigationPanel之间进行转换而不会“松开”SidePanel。例如:用户想要将产品添加到购物车,但未登录 - 应将其带到“帐户创建” - 导航控制器。

我现在是怎么做的:

[self.slidingViewController setTopViewController:[self.storyboard instantiateViewControllerWithIdentifier:@"accountSetup"]];

这很有效。它改变了顶级导航控制器 - 但它会瞬间完成。有没有一种方法可以为它设置动画(就像它可用于Segues?)

谢谢!

1 个答案:

答案 0 :(得分:1)

我会将自定义动画代码添加到SlidingVC方法中。你可能想要在运行动画代码之前添加一个bool并检查它。

 { 
CGRect topViewFrame = _topViewController ? _topViewController.view.frame : self.view.bounds; 
if (myBOOL) { 
    //my custom anim code
 } 
[self removeTopViewSnapshot]; 
[_topViewController.view removeFromSuperview]; 
[_topViewController willMoveToParentViewController:nil]; 
[_topViewController removeFromParentViewController]; 

_topViewController = theTopViewController; 

别忘了重置你的布尔。