iOS 8에서 UINavigationController와 상호 작용하는 UISearchController에서 이상하고 임의적이며 일관성이없는 동작이 발생합니다. 검색 창을 선택한 후 iOS에서 때때로 오른쪽에보기를 표시하고 때로는 왼쪽에보기를 표시합니다.
YouTube에서 모션으로 더 잘 설명 된 것을 볼 수 있습니다 .
나는 내가 어떤 버전을 얻든 상관하지 않지만 나를 미치게 만드는 것은 불일치입니다.
다음 viewDidLoad
은 검색 창과 도구 모음이 모두 설정된 위치에 대한 코드입니다 .
- (void)viewDidLoad {
[super viewDidLoad];
// Create our 4 view-filter buttons & a flex space
self.mainButton = [[UIBarButtonItem alloc] initWithTitle:@"Main" style:UIBarButtonItemStylePlain target:self action:@selector(viewMain)];
self.viewedButton = [[UIBarButtonItem alloc] initWithTitle:@"Viewed" style:UIBarButtonItemStylePlain target:self action:@selector(viewViewed)];
self.favoritesButton = [[UIBarButtonItem alloc] initWithTitle:@"Favorites" style:UIBarButtonItemStylePlain target:self action:@selector(viewFavorites)];
self.allButton = [[UIBarButtonItem alloc] initWithTitle:@"All" style:UIBarButtonItemStylePlain target:self action:@selector(viewAll)];
UIBarButtonItem *flexSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];
// Add toolbar buttons
NSArray *rightSideButtons = @[self.mainButton, flexSpace, self.favoritesButton, flexSpace, self.viewedButton, flexSpace, self.allButton];
[self setToolbarItems:rightSideButtons];
[self.navigationController setToolbarHidden:FALSE animated:FALSE];
// Set up search bar
self.searchResultsController = [[UITableViewController alloc] initWithStyle:UITableViewStylePlain];
self.searchResultsController.tableView.dataSource = self;
self.searchResultsController.tableView.delegate = self;
self.searchController = [[UISearchController alloc] initWithSearchResultsController:self.searchResultsController];
self.searchController.searchResultsUpdater = self;
self.searchController.searchBar.frame = CGRectMake(self.searchController.searchBar.frame.origin.x,
self.searchController.searchBar.frame.origin.y,
self.searchController.searchBar.frame.size.width, 44.0);
self.tableView.tableHeaderView = self.searchController.searchBar;
// this tells the search controller where to display
self.definesPresentationContext = YES;
}
iOS가 툴바를 표시하거나 키보드로 가리는 사이에서 무작위로 전환되는 이유를 아십니까? 코드가 더 필요하면 알려주세요.하지만 관련성이있는 부분은 모두 게시했습니다.
감사!
나는 두 가지를 변경하여 이것을 고쳤다.
먼저 질문에서 볼 수 있듯이 진술 에서 줄 [self.navigationController setToolbarHidden:FALSE animated:FALSE];
을 제거했습니다 viewDidLoad
.
둘째, Storboard 에서 영향을받는 테이블보기가 포함 된 탐색 컨트롤러 의 Shows Toolbar 를 활성화했습니다 .
나는 이것이 Xcode가 내 UI를 구워내는 방식을 바꾸 었다고 생각하며 지금까지 검색을 호출 할 때 키보드가 도구 모음을 밀어 올리는 것을 보지 못했습니다.
적어도 나는 그것이 차이를 만들었기를 바란다. 그렇지 않으면 아마도 부두 일 것이다. :-)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다