将我的NavigationController与我的ECSlidingViewController一起使用

时间:2013-08-28 12:00:56

标签: ios objective-c uinavigationbar slidingmenu ecslidingviewcontroller

我正在尝试做什么


如果开始创建我的应用程序。我的NavigationController有一个rootViewController。应用程序启动后,它将打开我的LoginViewController。在那里我做Login-Procedure,如果一切都很好。我将开始我的ECSlidingViewController。其中包含菜单UITableView)和 MainView UITableView)。

直到这里一切正常。我可以刷卡,它显示我的菜单。现在问题出现了。当我按下菜单项时,它会完美地启动我的新ViewController并显示内容。但它仍然显示相同的NavigationBar - 就像在ECSlidingViewController中一样。所以我没有可能告诉用户他在看什么,我也需要在NavigationBar中向他展示新选项。

问题


如何解决此问题?我总是希望显示我实际使用的特定ViewController的NavigationBar。如果你的家伙有一些Codesnippets或一个好主意如何处理这个问题。请在下面发表评论。

如果您需要codenippets或其他内容,请告诉我我会上传它!提前谢谢!

代码


这就是我启动ECSlidingMenu的方式:

[self performSegueWithIdentifier:@"loginPush" sender:self.view];

这就是我将如何启动一个新的ViewController:

UIViewController *newTopViewController = [self.storyboard instantiateViewControllerWithIdentifier:identifier];

图片*


Structure of the Storyboard:

1 个答案:

答案 0 :(得分:5)

您想要更改结构,以便ECSlidingViewViewController是根视图控制器。这可以是从应用程序的开始,也可以是在登录后切换根目录。滑动控制器的顶视图控制器应该是导航控制器,您应该设置根并将其他视图控制器推入该导航控制器。

你目前所拥有的东西打破了视图控制器和导航控制器之间的联系,因为只有滑动视图控制器被推入堆栈及其标题(其navigationItem的任何内容都没有变化)。

最简单的解决方案可能是更改故事板中的初始视图控制器(到滑动视图控制器)。在这种情况下,登录视图将显示为导航控制器的根视图(这将是顶视图)。然后,在登录后按下一个视图控制器,然后(在动画完成后)从导航堆栈中删除登录视图控制器。