나는 UISearchDisplayController
으로 고심하고 있으며, 누군가 나를 도와 줄 수 있기를 바랍니다.UISearchDisplayController 및 setDisplaysSearchBarInNavigationBar
기본적으로 나는 "검색"버튼이있는 UINavigationBar
을 가지고 있습니다. 누군가 "검색"을 탭하면 UISearchDisplayController
이 활성화되고 UISearchBar가 UINavigationBar
안에 나타나야합니다. SearchBar 옆에 "Cancel"버튼이 구현되어 SearchDisplayController
을 비활성화하고 UINavigationBar
을 다시 "검색"버튼으로 재설정합니다.
내 첫 번째 문제는 내 SearchBar
결과 테이블 또는 SearchDisplayController
이 활성화되어있는 동안 회색 오버레이와 사이의 간격이다.
두 번째 문제
내가 취소 도청 후 기본 아이콘 (돋보기) 내 rightBarButtonItem를 재설정 할 수 있다는 것입니다.[self.navigationItem setRightBarButtonItem:nil];
을 설정하려고해도 "취소"버튼이 남아 있습니다.
여기 내 구현 : OK
- (IBAction)btnSearchClicked:(id)sender {
[self.navigationController.navigationBar addSubview:self.searchController.searchBar];
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(cancelEditing)];
[self.searchController.searchBar setFrame:CGRectMake(0, 0, 250, 44)];
[self.searchController setDisplaysSearchBarInNavigationBar:YES];
[self.searchController setActive:YES animated:YES];
[self.searchController.searchBar becomeFirstResponder];
}
-(void)cancelEditing
{
[self.navigationItem setRightBarButtonItem:nil];
[self.searchController setActive:NO animated:YES];
[self.searchController.searchBar removeFromSuperview];
}