ios11自定义titleView导致crash

    项目里需要将searchbar放置在navigationbar上面,于是自定义titleView,并将searchbar作为子视图添加上去,之前一直好好的,不知道为什么后来一push到包含searchbar的控制器,应用就奔溃并抛出:libc++abi.dylib: terminating with uncaught exception of type NSException

    override func viewDidLoad() {
        super.viewDidLoad()
        initializeSearchBar()
        // Do any additional setup after loading the view.
    }
    func initializeSearchBar() {
        self.navigationItem.setHidesBackButton(true, animated: true)
        titleView = UIView(frame: CGRect(x: 15, y: 7.5, width: Screen.Width, height: 29))
     searchBar = UISearchBar(frame: CGRect(x: 0, y: 0, width: titleView.frame.width - 15, height: titleView.frame.height))
        searchBar.placeholder = "搜索"
        searchBar.delegate = self
        searchBar.showsCancelButton = true
        searchBar.tintColor = UIColor.fwNavigationBarColor
        searchBar.backgroundImage = UIImage.imageWithColor(UIColor.clear)
        let searchTextField = searchBar.value(forKey: "_searchField") as? UITextField
        searchTextField?.textColor = UIColor.fwSecondaryLightGray
        searchTextField?.font = kFont(14)
        searchTextField?.backgroundColor = UIColor.fwTableViewBackgroundColor
        let cancelButton = searchBar.value(forKey: "cancelButton") as? UIButton
        cancelButton?.setTitle("取消", for: .normal)
        cancelButton?.titleLabel?.font = kFont(16)
        cancelButton?.setTitleColor(UIColor.fwWhite, for: .normal)
        titleView.addSubview(searchBar)
        self.navigationItem.titleView = titleView
    }

解决方案:弃用titleView,而是设置leftBarButtonItem

       self.navigationItem.leftBarButtonItem = UIBarButtonItem(customView: titleView)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值