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; 
} 

이전 코드 사전 아이폰 OS-11 시스템에서 잘 작동하지만 아이폰 OS-11에 다른 문제가있다, 그래서 새로운 접근 방식을 사용하는 것을 선호 : 내가 사용하고 코드입니다. 아무도 내가 여기서 잘못하고있는 것을 알고 있습니까?

답변

0

당신이 왼쪽 탐색 항목 옆에있는 검색 창을 넣어하려면 다음 검색 창 navigationItemtitleView에 관계없이 iOS 버전, 그리고 UINavigationItem 사용하지 않는 '만들기의 searchController 속성을.

+0

예, iOS-10 이전 버전에서 정상적으로 작동했던 이전 방식입니다. 그러나 iOS-11에는 이러한 접근 방식에 대한 중요한 사이징 문제가 있습니다. iOS-11에서 끝내기는했지만 수동 크기 조정이 많습니다. – fishinear