使用 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

Push segue 搞乱了约束

从 iphone 上的 push segue 导航返回时,顶部导航栏变得可见

Push Segue 后在导航栏上添加 UIView

执行 push segue 后,当给搜索栏焦点时,导航栏隐藏

请教如何修改WPFDatePicker控件的默认值默