ios11中 navigationbar + uisearchc

2019-10-22  本文已影响0人  陈铖_eea8

我的情况是希望使用iOS11的新特性largetitle,所以我在appdelegate中设置了全局开启此特性,代码如下:

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

        self.window = UIWindow.init(frame: UIScreen.main.bounds)
        self.window?.rootViewController = TabBarController.init(nibName: nil, bundle: nil)
        self.window?.makeKeyAndVisible()
      
        //全局设置largetitle
        if #available(iOS 11.0, *) {
            (UINavigationBar.appearance() as UINavigationBar).prefersLargeTitles = true
        } else {
            // Fallback on earlier versions
        }
        
        return true
    }

我在主页面中present了一个模态视图,点击button按钮会弹出模态视图,代码如下:

    @objc private func presentToSecondPage() {
        let secnodPage = SecondPagePage.init(nibName: nil, bundle: nil)
        let navi = NavigationController.init(rootViewController: secnodPage)
        self.present(navi, animated: true, completion: nil)
    }

目前为止一切都很完美。如图:


IMG_1222.GIF

然后我希望在我的模态视图中使用largetitle 特性,同时配合使用uisearchcontroller,所以我在secondpage中写了以下代码:

override func viewDidLoad() {
        super.viewDidLoad()
        definesPresentationContext = true
        self.title = "Title"
        self.view.backgroundColor = UIColor.white
        if #available(iOS 11.0, *) {
            self.navigationItem.searchController = self.searchController
            self.navigationItem.hidesSearchBarWhenScrolling = true
        }
    }
    
    lazy var searchController : UISearchController = {
        let searchController = UISearchController.init(searchResultsController: nil)
        searchController.hidesNavigationBarDuringPresentation = false
        searchController.obscuresBackgroundDuringPresentation = false
        searchController.dimsBackgroundDuringPresentation = false
        searchController.searchBar.delegate = self
        return searchController
    }()

此时问题出现了,我在点击搜索框之后,再点击cancle,然后再滑动页面,我发现largetitle重复出现了,如图 48181B0DAE14819A78E000F39C407683.png

上面提到的问题是issue1。还有issue2,issue2应该是伴随着issue1出现的。
issue2可以简单描述为 当出现issue1之后,我再去点击导航栏上的“编辑”按钮和右侧的“加号”按钮,他们两个按钮将不再响应点击事件,debug了一下,这个问题好像是两个按钮上分别多了一个遮罩层,从而导致点击无效。
以上是我现在遇到的两个问题,我的测试环境是:


屏幕快照 2019-10-22 下午9.30.06.png

各路大神有没有遇到过这个情况,还望指一条明路。

上一篇下一篇

猜你喜欢

热点阅读