[英]self.definesPresentationContext = true: leads to black screen?
let searchController = UISearchController(searchResultsController: nil)
override func viewDidLoad() {
super.viewDidLoad()
searchController.searchResultsUpdater = self
searchController.dimsBackgroundDuringPresentation = false
// searchController.definesPresentationContext = true
self.definesPresentationContext = true
當搜索欄處於活動狀態並帶有文本時,我轉到另一個選項卡,然后返回,除了實際的搜索欄外,控制器為黑色。 當我取消並清空搜索文本字段時,一切恢復正常。 我的問題基本上與這個問題相同: UISearchController導致黑屏Swift 2.0
如您所見,除了那個答案不能解決我的問題。 解決問題的方法是,如果將self更改為searchController,則:searchController.definesPresentationContext = true。 但這會導致搜索欄出現在我標簽頁指向的下一個控制器中。 很困惑,請幫忙。
我正在使用嵌入在導航控制器和標簽欄控制器中的tableview。 搜索處於活動狀態時,不會調用viewDidDisappear。
這個stackeroverflow帖子本身不是解決方案,而是一種解決方法,它有助於: 帶SearchController的TableView-DEINIT未被調用 。 我不確定這是否是某種蘋果蟲。
顯然我根本不應該使用self.definesPresentationContext = true。 這使我的搜索出現在我的所有標簽中。 但是至少要調用viewDidDisappear。
在viewDidDisappear中,我可以使用searchController.searchBar.hidden = true隱藏搜索欄,然后在viewDidAppear中再次顯示該欄。
在AppDelegate.swift中
window?.backgroundColor = UIColor.white
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.