我正在尝试做什么
如果开始创建我的应用程序。我的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];
图片*
答案 0 :(得分:5)
您想要更改结构,以便ECSlidingViewViewController
是根视图控制器。这可以是从应用程序的开始,也可以是在登录后切换根目录。滑动控制器的顶视图控制器应该是导航控制器,您应该设置根并将其他视图控制器推入该导航控制器。
你目前所拥有的东西打破了视图控制器和导航控制器之间的联系,因为只有滑动视图控制器被推入堆栈及其标题(其navigationItem
的任何内容都没有变化)。
最简单的解决方案可能是更改故事板中的初始视图控制器(到滑动视图控制器)。在这种情况下,登录视图将显示为导航控制器的根视图(这将是顶视图)。然后,在登录后按下一个视图控制器,然后(在动画完成后)从导航堆栈中删除登录视图控制器。