UITabBar 在第一次 setViewControllers 调用上的状态
Posted
技术标签:
【中文标题】UITabBar 在第一次 setViewControllers 调用上的状态【英文标题】:UITabBar above the status on first setViewControllers call 【发布时间】:2014-08-07 19:42:46 【问题描述】:我正在开发的应用程序可在 ios 7 (iPhone) 上运行。我有一个自定义导航,其中我在UIViewController
上有一个菜单,其中包含一些按钮和一个UINavigationController
,它充当从菜单呈现的UIViewControllers
内容的容器。 (类似于 facebook 滑动菜单)
问题是我需要一个自定义的UINavigationBar
,所以我不能使用initWithRootViewController
初始化器在UINavigationController
上添加根UIViewController
,所以每当用户按下a 时我都必须使用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];
我希望我很清楚我想要什么 :),如果没有,抱歉并添加评论,我会尽快澄清。
谢谢。
【问题讨论】:
【参考方案1】:好的,我找到了解决方案。
似乎我必须等到在主视图控制器中调用viewDidLayoutSubviews
方法,然后在其上添加导航控制器..
这样看来,导航栏定位不错。
【讨论】:
以上是关于UITabBar 在第一次 setViewControllers 调用上的状态的主要内容,如果未能解决你的问题,请参考以下文章