2014-11-24 15 views
5

altında Kaydırma, arama sonuçları başarıyla görüntülemek UITableViewController 'ın UITableView. Ancak, sonuçlarda aşağı doğru kaydırırken, 'un satırları, UINavigationBar ve simülatörün durum çubuğunun altında görünür bir şekilde görünür. AçıkçasıArama Sonuçları Gözle görülür Durum Bar

Scrolling through search results

Ben bunun için gidiyorum bakmak değildir. İdeal olarak, UISearchBar'un tüm arama sonuçları UISearchBar'un kapsama düğmelerinin altında yer alan UITableView başlığı olarak hareket etmesini isterim, ancak girişimlerim başarısız oldu.

İlgili UITableViewController ve UITableView özelliklerinin Storyboard kurulumu aşağıdadır.

Search results table view controller and its table view's properties

Aşağıda kurulum için UISearchController ve UISearchBar kullanıyorum alakalı kodudur.

BallotTunesSearchTableViewController.h

@interface BallotTunesSearchTableViewController : UITableViewController <UISearchControllerDelegate, UISearchResultsUpdating, UISearchBarDelegate> 

BallotTunesSearchTableViewController.m

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    self.appDelegate = [[UIApplication sharedApplication] delegate]; 

    // Initialize the search controller 
    self.searchController = [[UISearchController alloc] initWithSearchResultsController:nil]; 
    self.searchController.searchResultsUpdater = self; 
    self.searchController.dimsBackgroundDuringPresentation = NO; 

    // Setup the search bar 
    self.searchController.searchBar.delegate = self; 
    self.searchController.searchBar.scopeButtonTitles = [NSMutableArray arrayWithObjects:SongScopeName, ArtistScopeName, AlbumScopeName, nil]; 
    self.tableView.tableHeaderView = self.searchController.searchBar; 
} 

Güncelleme: UITableViewController bir UINavigationController gömülü ve unutmayın UINavigationBar ait saydamlaştırmak ayarlarken'ye, UISearchBar, UINavigationBar ile birlikte görünümü kapatır.

Search bar disappears

Ayrıca ben Film Şeridi '(Ben çalışmak benim şimdiki kurulum alamayan ancak, ben bu rotayı sürebilir) içinde UISearchBar uygulayan değilim unutmayın.

+0

Nakil çubuğunu saydam olmamasına dikkat edin. self.navigationController.navigationBar.translucent = NO; –

+0

@MikeWelsh Harika öneri. Ancak, "UINavigationBar" 'ın yarı saydamlığını kapatırken,' UISearchBar ',' UINavigationBar 'içine gömülmeye dayanması nedeniyle seçildiğinde görünümü kapatır. – Ryan

+0

Bu VC bir UINavigationController'da gömülü mü? Bu aramayı nasıl sunuyorsunuz? –

cevap

4

birkaç yüz avuç sonra, tüm bu kod hattın olmamasından indi:

self.definesPresentationContext = YES; 

YES sunum bağlamı ayarlama görünümü denetleyicisi sunduğunda görünüm kontrolörün görünümü kaplı gerektiğini gösterir UISearchController.

+0

Bazı ekstra notlar, sunum yapan denetleyicide self.definesPresentationContext = true değerini eklemeniz gerekir. Benim için, görüntüleme denetleyicisinin durum çubuğunun gizlenmiş olması işe yaramadı, arama sonucu görüntü denetleyicisinde olduğu gibi görünür hale getirmek zorunda kaldım. –