2016-03-24 22 views
0

Mükemmel bir şekilde çalışabilen bir UITableView var. Bir UITabbarController içinde yuvalanmıştır.UITableView'a geri dönme SearchResultDetailView

Ayrıca bir UISearchController'ı UISearchBar ile entegre ettim, bu da kullanıcının UITableView içeriğini aramasına izin veriyor. Bu da iyi çalışıyor.

TableViewCells öğelerinden birini seçtiğinizde, bir DetailView'a ulaşırsınız.

Etkin arama olmadan bunu yaptığınızda, her şey iyi çalışır, ancak bir arama girdiğinizde ve sonuçlardan bir hücre seçerseniz, üstte herhangi bir geri düğmesi olmadığından Tablo Görünümüne geri dönmenin bir yolu yoktur. sol köşede, tokatlamak geri hareketi kullanabilirsiniz.

ben searchresults için ayrı bir UITableView belirtmek olmadığını eklemek gerekebilir:

düşündüğümden
var searchController: UISearchController = { 
     let controller = UISearchController(searchResultsController: nil) 
     controller.dimsBackgroundDuringPresentation = false 
     controller.searchBar.sizeToFit() 
     return controller 
    }() 

, belki, bu var:

self.searchController.searchBar.delegate = self 
self.searchController.searchResultsUpdater = self 
self.tableView.tableHeaderView = self.searchController.searchBar   
self.definesPresentationContext = true 

böyle SearchController tanımlamak UiniabbarController içine bir UINavigationController koymak ve benim TableView kendi RootViewController olarak ayarlamak, ama sonra sorun vardı, SearchBar NavigationBar arkasında gizlenmiş oldu ...

DÜZENLEME (@ryantxr): my didSelectRowAtIndexPath: Hücreler aynı görünür olarak arama ve hiçbir arama arasında hiçbir fark yoktur cellForRowAtIndexPath yılında

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
     tableView.deselectRowAtIndexPath(indexPath, animated: true) 
    } 

. Bu aynı zamanda neden iki farklı segue kullanmadığımı da gösteriyor.

Ama haklısınız, arama kullanırken ve arama yaparken farklı istek kullanmıyorum. Bir hücre tıklandığında kullanılan tek segue, storyboard'da ve prepareForSegue'da, hedef UIViewController'ın niteliklerini de ayarlıyorum.

+1

Tablo görüntüleme işlevlerinizi görebilir miyim, didSelectRowAtIndexPath, cellForRowAtIndexPath vb. Arama ekranına göre arama yapılıyorsa ayrıntılar tarafından ele alınan detay ekranına geçişler var mı? – ryantxr

+1

Arama dışı modda ayrıntı ekranını gördüğünüzde, bir geri düğmesi alırsınız, ancak arama modundan çıktığınızda, geri düğmesi yoktur. Bu doğru mu? – ryantxr

+0

evet, bu doğru – Heckscheibe

cevap

0

sorun UISearchController bu sorumluydu içeren UITableViewController kod parça olduğu ortaya çıkıyor: Bu silerek

self.definesPresentationContext = true 

, sonuç görünümü denetleyicisi doğru gördü ve NavigationBar değildi Bu nedenle, arama fonksiyonuna geri dönmek mümkün oldu ...

İlgili konular