使用我的NavigationController与ECSlidingViewController

3
我想做的事情:
我正在创建我的应用程序。我有一个NavigationController作为我的rootViewController。当应用程序启动时,它将打开我的LoginViewController。在那里我进行登录过程,如果一切正常。我将启动我的ECSlidingViewController。它有一个菜单(UITableView)和一个MainView(UITableView)。
直到这里一切都正常。我可以滑动并显示我的菜单。现在问题开始了。当我按下菜单项时,它完美地启动我的新视图控制器并显示内容。但是它仍然显示相同的NavigationBar - 就像在ECSlidingViewController中一样。所以我没有办法告诉用户他正在看什么,而且有时我需要在NavigationBar中显示新选项。
问题:
如何解决这个问题?我总是想显示我实际使用的特定ViewController的NavigationBar。如果你们有一些代码片段或者好的想法如何处理这个问题。请在下面留言。
如果您需要代码片段或其他内容,请告诉我,我会上传它!提前感谢!
代码:
这就是我如何启动我的ECSlidingMenu:
[self performSegueWithIdentifier:@"loginPush" sender:self.view];

这是我开始新视图控制器的方式:

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

图片*


故事板结构图:


你是否在新的ViewController视图中移动时更改了UINavigation bar的外观? - Puneet Sharma
展示根导航控制器与滑动控制器切换之间的代码(它是否成为新的根?)。 - Wain
是的,它应该显示一个文本和一个按钮.... 但它总是显示我的ECSlidingViewController的导航栏。我不知道问题出在哪里。顺便说一下,我为整个应用程序使用一个NavigationController。 @wain 给我一分钟。 - safari
1个回答

5
您想改变结构,使ECSlidingViewViewController成为根视图控制器。这可以从应用程序启动时开始,也可以在登录后切换根视图。滑动控制器的顶部视图控制器应该是导航控制器,并且您应该设置根视图并将其他视图控制器推入该导航控制器。目前的情况会破坏视图控制器和导航控制器之间的链接,因为只有滑动视图控制器被推入堆栈,它的标题(关于其navigationItem的信息永远不会改变)。最简单的解决方案可能是更改故事板中的初始视图控制器(转换为滑动视图控制器)。在这种情况下,登录视图将作为导航控制器的根视图呈现(这将是顶部视图)。然后,在登录后,您将推送下一个视图控制器,然后(在动画完成后)从导航栈中移除登录视图控制器。

嘿,Wain,有你的帮助我才能解决它!现在一切都正常工作了!谢谢! - safari

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接