3

我正在尝试做的事情


如果开始创建我的应用程序。我有一个NavigationController作为我的rootViewController. 当应用程序启动时,它将打开我的LoginViewController. Login-Procedure如果一切都好的话,我会在那里做。我会开始我的ECSlidingViewController. 其中有一个Menu ( UITableView) 和一个MainView ( UITableView)。

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

问题


我该如何解决这个问题?我总是想展示NavigationBar我实际使用的特定 ViewController 的。如果你们有一些 Codesnippets 或一个好主意如何处理这个问题。请在下方留言。

如果您需要代码片段或其他内容,请告诉我,我会上传!先感谢您!

代码


这就是我启动 ECSlidingMenu 的方式:

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

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

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

图片*


故事板的结构:

4

1 回答 1

5

你想改变你的结构,使它ECSlidingViewViewController成为根视图控制器。这可以从应用程序的启动开始,也可以在登录后切换根目录。滑动控制器的顶部视图控制器应该是导航控制器,您应该设置根并将其他视图控制器推送到该导航控制器中。

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

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

于 2013-08-28T12:40:45.663 回答