我正在开发的应用适用于iOS 7(iPhone)。我有一个自定义导航,我在UIViewController
上有一个菜单,其中包含一些按钮和一个UINavigationController
,它扮演容器的角色,用于从菜单中显示的UIViewControllers
内容。 (类似于facebook滑动菜单)
问题是我需要自定义UINavigationBar
,因此我无法使用initWithRootViewController
初始值设定项在UIViewController
上添加根UINavigationController
所以我必须每当用户按下菜单按钮时使用setViewControllers
方法。
问题在于,首先,当菜单控制器加载时,我必须打开屏幕右侧的菜单UIViewControllers
之一,每当我这样做时,导航栏将会显示在状态栏。如果我加载另一个视图控制器,一切正常,导航栏就可以了,如果我延迟显示第一个视图控制器0.1秒,导航栏显示正常..
在设置根UIViewController
以便屏幕刷新或其他内容后,有没有办法刷新导航控制器?
self.navigationController = [[UINavigationController alloc] initWithNavigationBarClass:[CustomNavBar class] toolbarClass:nil];
[self.navigationController setViewControllers:@[viewController] animated:NO];
[self.view addSubview:self.navigationController.view];
[self addChildViewController:self.navigationController];
[self.navigationController didMoveToParentViewController:self];
我希望我清楚我想要的东西:),如果没有,抱歉并添加评论,我尽量澄清。
感谢。
答案 0 :(得分:0)
好的,我找到了解决方案。
似乎我不得不等到主视图控制器中调用viewDidLayoutSubviews
方法,然后才在其上添加导航控制器..
这种方式似乎导航栏定位良好。