我尝试了什么:
UIView *view = [[UIView alloc] initWithFrame:frame];
[view setBackgroundColor:[UIColor redColor]];
[[UINavigationBar appearance] addSubview:view]; // does't work
[self.navController.view addSubview:view]; // does't work
[self.navController.view bringSubviewToFront:view]; //
问题是我们如何在iOS7的导航栏中正确添加子视图?谢谢你的建议。
UPD0:对不起,伙计们。我得到了一部分。这是因为我在self.navController.navigationBarHidden = YES
之后setupAppearance
。好吧,似乎有一个有趣的导航脸。酒吧实施。 navigationBarHidden
和每个视图中我们都有自定义导航。酒吧。我应该深入了解一下。无论如何,谢谢你的回复。
UPD1:只需继续搜索解决方案即可向nav添加自定义视图。酒吧喜欢背景图片。
答案 0 :(得分:9)
您必须将其添加到导航栏,试试这个:
[self.navigationController.navigationBar addSubview:view];
答案 1 :(得分:1)
我是这样做的: 在我的主视图控制器中,我将主视图控制器初始化为UINavigationController作为委托(主视图需要实现UINavigationControllerDelegate):
self.nav = [[UINavigationController alloc] initWithRootViewController: self];
导航控制器将自动负责创建UINavigationBar。您还可以通过此导航控制器将子视图添加到UINavigationBar。以下是我添加子视图的方法:
UIView *buttonsView = [[UIView alloc] initWithFrame:buttonsFrame];
button = [self buttonWithName:@"crop" target:self selector:@selector(cropImage) left:left];
[buttonsView addSubview: button];
...
self.navigationItem.titleView = buttonsView;
这就是全部。