簡體   English   中英

self.definesPresentationContext = true:導致黑屏嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM