使用 Push segue 时将导航栏改回默认值
Posted
技术标签:
【中文标题】使用 Push segue 时将导航栏改回默认值【英文标题】:Change the navigation bar back to default, when using a Push segue 【发布时间】:2015-07-07 10:00:45 【问题描述】:基本上,我这样改变导航栏的外观:
// Disable the shadow image
[self.navigationController.navigationBar setShadowImage:[UIImage new]];
// Add the blue line
UIView *blueLine = [[UIView alloc]init];
[blueLine setBackgroundColor:[UIColor borderBlueColor]];
[blueLine setFrame:CGRectMake((self.navigationController.navigationBar.frame.size.width - 120) / 2, self.navigationController.navigationBar.frame.size.height - 1, 120, 1)];
[self.navigationController.navigationBar addSubview:blueLine];
但是,我只是将自定义外观设置为仅其中一个视图控制器。当我使用推送到另一个视图控制器时,似乎所有这些都应用在这个自定义外观中。但我希望其他导航栏更改为默认外观。有人有什么建议吗?
【问题讨论】:
【参考方案1】:你可以使用appreance代理
[[UINavigationBar appearanceWhenContainedIn:[YourVC class], nil]addSubview:blueLine];
【讨论】:
@MikeZhu 你把它放在哪里了? 我把它放在 AppDelegate 文件中。 我用另一种方式解决,将“isHidden”设置为UIView 好的,或者你可以在 viewWillAppear 中设置并在 viewWillDisappear 中删除以上是关于使用 Push segue 时将导航栏改回默认值的主要内容,如果未能解决你的问题,请参考以下文章
Push、Segue、Summon、导航以编程方式查看 SwiftUI
从 iphone 上的 push segue 导航返回时,顶部导航栏变得可见