Attempting to load the view of a view controller while it is deallocating… UISearchController

前端 未结 13 1150
一生所求
一生所求 2020-12-01 02:34

I have code that creates a UISearchController\' in my UIVIew\'sviewDidLoad`.

 self.resultSearchController = ({
        let controller = UISearch         


        
13条回答
  •  死守一世寂寞
    2020-12-01 03:15

    Hacking together a few solutions I managed to get mine working by adding lines to viewDidLoad before fully setting up the UISearchController:

    override func viewDidLoad() {
        super.viewDidLoad()
        self.navigationItem.rightBarButtonItem = self.editButtonItem()
    
        if #available(iOS 9.0, *) {
            self.resultSearchController.loadViewIfNeeded()// iOS 9
        } else {
            // Fallback on earlier versions
            let _ = self.resultSearchController.view          // iOS 8
        }
        self.resultSearchController = ({
            let controller = UISearchController(searchResultsController: nil)
            controller.searchResultsUpdater = self
            controller.dimsBackgroundDuringPresentation = false
            controller.searchBar.sizeToFit()
    
            self.tableView.tableHeaderView = controller.searchBar
    
            return controller
        })()
    
        self.tableView.reloadData()
    
    }
    

提交回复
热议问题