1

新しいiOS-11 searchBarのアプローチを有効にしようとしていますが、管理しません。検索バーは、その隣の代わりに、アップ示しているが、左のバーボタンの下に表示されます。iOS 11 showBarをleftBarButtonItemの隣にあるナビゲーションバーに表示

enter image description here

それは風景モードでも同じです。 私が使用しているコードは次のとおりです。

self.searchResults = [[SearchResultsTable alloc] init]; 
self.searchResults.delegate = self; 
searchController = [[UISearchController alloc] initWithSearchResultsController:self.searchResults]; 
searchController.searchResultsUpdater = self.searchResults; 
searchController.hidesNavigationBarDuringPresentation = NO; 
self.definesPresentationContext = YES; 

self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] 
    initWithBarButtonSystemItem:UIBarButtonSystemItemRefresh 
         target:self 
         action:@selector(swapToListView:)]; 
if ([self.navigationItem respondsToSelector:@selector(setSearchController:)]) { 
    // only available from IOS-11 onwards 
    self.navigationItem.title = nil; 
    self.navigationItem.titleView = nil; 
    [self.navigationItem setSearchController:searchController]; 

} else { 
    // Fallback on earlier versions 
    self.navigationItem.titleView = searchController.searchBar; 
} 

古いコードは、前のiOS-11システム上で正常に動作しますが、iOSの-11上の他の問題を抱えているので、私は新しいアプローチを使用することを好みます。 ここで間違っていることは誰でも知っていますか?

答えて

0

あなたは左側のナビゲーションアイテムの横に検索バーを配置したい場合は、検索バーnavigationItemtitleViewかかわらず、iOSのバージョンの、およびUINavigationItem使用していない "作るのsearchControllerプロパティを。

+0

はい、これはiOS-10以前のバージョンで正常に機能していた古いアプローチです。しかし、iOS-11ではそのアプローチに大きなサイジングの問題があります。私はiOS-11の最終的な作業を手に入れましたが、手作業によるサイジングがたくさんありました。 – fishinear

関連する問題