iOS13导航栏后退栏按钮项目的色调颜色

问题描述 投票:1回答:1

我在导航栏中嵌入了Search Controller。关闭搜索控制器后,导航后退按钮按钮项仅在iOS13中恢复为默认颜色(蓝色)。

有什么办法可以解决此问题?

这里:Gif

swift uinavigationbar uisearchcontroller swift5 backbarbuttonitem
1个回答
0
投票

我也遇到了这个问题。

我放置了一个自定义按钮,而不是系统后退按钮。它为我工作。

您应先将其放在推入viewController之前。如果您有两个或更多viewControllers,您应该首先将其放置。

    let backItem = UIBarButtonItem()
    backItem.title = "Back" 
    backItem.tintColor = .red
    navigationItem.backBarButtonItem = backItem

0
投票

所有这些都是正常的。 iOS 13中的新增功能,扩展后的导航栏(显示搜索栏,大标题等)与普通导航栏的外观不同。您的设置仅适用于普通导航栏,因为您没有将它们设置为iOS 13方式。如果要使扩展的导航栏看起来像普通导航栏,则必须分别且明确地设置其外观。

为此,您需要设置导航栏的scrollEdgeAppearance。研究类UIBarAppearance,UINavigationBarAppearance和UIBarButtonItemAppearance(您将需要显式设置backButtonAppearance)。

[这是我的解决方案,可在带有XCode 11的iOS 13上运行(也已在运行iOS 12的设备上进行了向后兼容性测试)和UINavigationBar.appearance()。standardAppearance = UINavigationBarAppearance()。在Info.plist文件中,添加以下两个属性:

<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
<key>UIStatusBarStyle</key>
<string>UIStatusBarStyleLightContent</string>
© www.soinside.com 2019 - 2024. All rights reserved.