2015-06-10 11 views
11

Arama çubuğunu, tablo kaydırdıkça görüntülemeye çalışıyorum. Şu anda bir tablo görünümünde başlık olarak yerleştiriyorum ve gerektiği gibi çalışır, ama tabiki masa aşağı giderken arama çubuğu kayar.UISearchController'ın searchBar'ını tableHeaderView veya navigationItem.titleview olmayan bir görünüme nasıl ayarlayabilirim?

How do I use UISearchController in iOS 8 where the UISearchBar is in my navigation bar and has scope buttons?

searchController = UISearchController(searchResultsController: nil) 
searchController.searchResultsUpdater = self 
searchController.delegate = self 
searchController.searchBar.delegate = self 
searchController.dimsBackgroundDuringPresentation = false 
searchController.hidesNavigationBarDuringPresentation = false 
tableview.tableHeaderView = searchContoller.searchBar // How to put it elsewhere? 
//Alternative that also works 
navigationItem.titleView = searchController.searchBar 

fikir UISearchBar için bir çıkış başka bir görünümünü almak ve Mesela

otherview = searchController.searchBar 

yapmak, ya da: Ben sadece bu kod örneği değiştirerek bu yapabileceğini düşündüm Boş bir UIView, ya da bunun gibi bir şey.

Ancak, bunu yaparsam arama çubuğunu göstermez. Sadece bir tablonun üstbilgi görünümü veya navigationItem.titleView olarak çalışır gibi görünüyor.

Bir şey mi eksik?

+1

ekleyerek o görünüme UISearchController arama çubuğunu ekleyebilirsiniz Daha sonra arama çubuğunu 'viewContainer.addSubview (searchController.searchBar) ' –

+0

ile görüntüleyebilirsiniz. Bu doğru! Ekle ve cevap ver ve biraz daha puan kazanırsın. – Carlos

cevap

19

Tablo görünümünün üzerinde boş bir UIView varsa.

searchContainer adlı boş bir UIView ürününe sahip olduğunuzu varsayalım. O zaman tableview yukarıda boş bir UIView yer varsa, diyelim ki `searchContainer` denen boş UIView bir çıkış var diyelim aşağıdaki satırı

searchContainer.addSubview(searchController.searchBar) 
+0

SearchBar'ı görünüm denetleyicisine eklemem için harika çalıştı, ancak sadece ilk defa düzenlemeye çalıştığımda searchResultsController tetiklemiyor. Ancak searchBar'ı başlatmak için bir barButtonItem kullanırsam, searchResultsController ve gerçek arama her seferinde tetiklenir. Burada bir şey mi eksik? – gadget00

+0

Bazen, bazı layout yanlış davranışlarını önlemek için 'viewDidLoad' yönteminizi' definesPresentationContext = true' ve 'extendedLayoutIncludesOpaqueBars = true' ile kurmalısınız. – Leandro

+0

Alt görünüm olarak eklemeden önce/sonra searchController.searchBar'ın yüksekliğini ve genişliğini ayarlamanın bir yolu var mı? – coolcool1994

İlgili konular