当前位置: 首页 > 面试题库 >

向其中添加UISearchController时导航栏变为白色

韦棋
2023-03-14
问题内容

当我从UINavigationController向UINavigationItem添加UISearchController时;当视图加载时,该图标变为白色;当用户单击搜索栏时,该图标变为指定的颜色。自iOS
13.1起发生这种情况。该视频显示了该行为:

我的代码包含一个简单的情节提要,其中包含一个NavigationController+一个TableViewController,并且NavigationController为其分配了一种颜色:

ViewController由以下代码组成:

class ViewController: UITableViewController {

    let searchController = UISearchController(searchResultsController: nil)

    override func viewDidLoad() {
        super.viewDidLoad()

        searchController.hidesNavigationBarDuringPresentation = false
        searchController.obscuresBackgroundDuringPresentation = false
        navigationItem.searchController = searchController
    }
}

我还将这些键添加到info.plist文件中,以强制应用程序进入灯光模式,但如果删除这些键,则仍然存在相同的行为:

<key>UIUserInterfaceStyle</key>
<string>Light</string>

这已在运行iOS 13.1 beta 1的iPhone XS Max上进行了测试。这是预期的行为还是需要修复的错误?


问题答案:

看来需要在iOS 13上使用新的UINavigationBarAppearance。尝试将其添加到您的viewDidLoad中:

let appearance = UINavigationBarAppearance()
appearance.backgroundColor = .systemRed
appearance.titleTextAttributes = [NSAttributedString.Key.foregroundColor : UIColor.white]
navigationItem.standardAppearance = appearance
navigationItem.scrollEdgeAppearance = appearance

您可能还需要设置searchField backgroundColor:

let searchField = searchController.searchBar.searchTextField
searchField.backgroundColor = .systemBackground


 类似资料:
  • 请参见黑色导航栏和分组的表格视图垂直细条纹之间的空白?该空间是导航栏的一部分。如果我滚动表格视图,空格将保持在原来的位置。 我需要navigationController框架仅在这个viewController中更短,这样就没有提供的屏幕截图中显示的空白。 (可能与此有关的是一个带有分组tableview的viewController)。。 以下是此视图控制器的唯一其他子视图: 此导航栏在应用程序

  • 问题内容: 我想在每个页面上显示一个导航栏。在PHP中,我会编写导航栏,然后将其包含在其他页面上。我试图将导航栏模板包括或扩展到其他模板中,但是没有用。它仅输出“这是主页”。如何在每个模板中正确包含导航栏? layout.html index.html 问题答案: 使用所有页面共有的布局和导航创建基本模板。然后扩展此模板以创建实际的页面。向基本模板中添加可以在其他模板中覆盖的块。 base.htm

  • 问题内容: 我正在尝试使用导航栏(“后退”按钮,标题等)和选项卡栏(底部的工具栏)制作一个应用程序。我使用的是子视图,因此不必担心状态栏,导航栏,标签栏的高度等问题。但是我认为这给我带来了麻烦,因为我似乎无法弄清楚如何设置导航栏和标签栏。 这就是我所拥有的。我究竟做错了什么? AppDelegate.h AppDelegate.m ViewController.h ViewController.m

  • 问题内容: 我试图将欢迎页面/简介页面添加到Kibana 4,并且需要修改导航菜单。我在/src/kibana/plugins/kibana/kibana.html上找到了导航源html文档,但无法确定从何处插入了选项卡名称。 这是进行呼叫的列表代码块: 与单词“ Discover”,“ Visualize”,“ Dashboard”和“ Settings”相关联,如下所示: http://www

  • 问题内容: 我想在页面上建立一个导航栏效果,像一样(向下滚动栏变得更小并且徽标更改后)。我在页面上使用bootstrap 3。有没有一种简单的方法可以通过Bootstrap实现它? 问题答案: 粘性导航栏: 要制作粘性导航,您需要将 navbar-fixed-top 类添加到导航中 官方文档 :http : //getbootstrap.com/components/#navbar-fixed-

  • 不久前,我有一个导航抽屉在工作,但后来我决定将其更新为使用工具栏,而不是默认的支持操作栏。现在,当我点击汉堡包菜单时,导航抽屉没有打开。然而,我可以从左向右滑动并打开它。问题是,它现在是空的。 值-v21/样式。xml 导航U抽屉。xml ctivity.java 我知道NavDrawerItem看起来有点不稳定,但我已经验证了它可以与旧的导航抽屉(前工具栏)一起工作,它真正做的是用图标填充列表视