0

'u kullanarak UITableView'da gezinirken UISearchController için bir uyarı nasıl düzeltilir? SearchController, searchController = UISearchController(searchResultsController: nil) olarak bir TableViewController öğesinin viewDidLoad() içinde bildirilmiştir. Kullanıcı geçerli tablo görünümünde bir satır seçtiğinde, self.navigationController?.popViewControllerAnimated(true) kullanarak önceki viewcontroller'a gider. Bu durumla i bir uyarı olsun -popViewControllerAnimated (true)

Bunu önlemek için

, öyleyim "buna izin verilmez ayırmayı kaldırma ve tanımsız davranışlara neden olabilir iken bir görünüm denetleyicisinin görünümü yüklemek için çalışılıyor" Gezinme denetleyicisinde popViewControllerAnimated(true)'u aramadan önce arama denetleyicisini süper görüntüden kaldırma.

Arama etkinse ve bir satır seçiliyse, aynı uyarıyı alamıyorum. İlk önce arama denetleyicisini reddettiğim ve daha sonra bir önceki denetleyiciye çıktığım için bu durumda iyi çalışır. Ancak arama denetleyicisini, arama etkinse de olmasa da, tüm durumlarda kapatırsam yardımcı olmaz.

İşte kod.

  1. viewWillDisappear/viewDidDisappear
  2. deinit{ if let superView = searchController.view.superview { superView.removeFromSuperview() } }

Hangi biri: -

//Dismiss searchController if active & Navigate to previous view controller on row selection 
if self.searchController.active { 
    self.searchController.dismissViewControllerAnimated(true, completion: { 
     self.navigationController?.popViewControllerAnimated(true) 
    }) 
} 
else { 
    //remove UISearchController from superView 
    self.searchController.view.superview?.removeFromSuperview() 
    self.navigationController?.popViewControllerAnimated(true) 
} 

Ben içinde aynısını yapmak başka blokta veya gerektiği yukarıdaki gibi bu doğru yaklaşım olup olmadığını anlamak istiyorum Yapılması gereken doğru şey mi?

cevap

0

Bence ilk önce, süper görüntüden kaldırmadan önce etkin olup olmadığını kontrol eden daha iyi bir seçenek.