移除少数视图控制器的导航栏边框

Posted

技术标签:

【中文标题】移除少数视图控制器的导航栏边框【英文标题】:remove border of navigation bar for few view controllers 【发布时间】:2015-11-14 05:18:22 【问题描述】:

我想删除导航栏的边框。我在 AppDelegate.m 中使用此代码

[[UINavigationBar appearance] setBackgroundImage:[[UIImage alloc] init]
                              forBarPosition:UIBarPositionAny
                                  barMetrics:UIBarMetricsDefault];

[[UINavigationBar appearance] setShadowImage:[[UIImage alloc] init]];

而且效果很好。它删除了每个视图控制器中导航栏的边框。 但我必须为少数视图控制器删除它。

通过将此代码放在特定视图控制器的 viewWillAppear 中,它不起作用。 有人知道怎么做吗?

【问题讨论】:

您应该在选择的导航栏中设置导航栏的背景图像和阴影图像,不要使用外观方法。例如:` [self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault]` 谢谢....现在它的工作:) 我将在我的评论中添加一个答案,以便您接受并关闭此问题。 【参考方案1】:

您应该在选择的导航栏中设置导航栏的背景图像和阴影图像,而不是使用外观方法。例如:

    [self.navigationController.navigationBar setBackgroundImage:[UIImage new]
 forBarMetrics:UIBarMetricsDefault];

【讨论】:

以上是关于移除少数视图控制器的导航栏边框的主要内容,如果未能解决你的问题,请参考以下文章

UIBarButtonItem插入导航栏时如何改变边框?

在视图控制器中重置导航栏的外观

ViewDeck 在设置中心控制器时移除导航栏

导航栏 removeGestureRecognizer 未删除 Guesture

视图控制器中的集合视图,单元格触摸集合视图本身的顶部边框(嵌入在导航控制器中)

从导航栏视图控制器导航到标签栏视图控制器