iOS8 용 iPhone 앱이 있습니다. UIPageViewController는 UITableViewController의 하위 뷰를 가지고 있으며 여기에 UISearchController를 배치합니다. 있는 UITableViewController를 처음으로 제공되면UITableView가 다시 나타나면 UISearchBar가 첫 번째 응답자가 될 수 없습니다.
, 내가보기 컨트롤러가 보이지 않는 도착하면, 그러나
[self.searchController.searchBar becomeFirstResponder];
를 수행하여 검색을 활성화 아무런 문제가 없다 중 다른 테이블 뷰 컨트롤러에 밀거나 모달 제시하여 시각적으로 마스킹하는 UIViewController를 사용하면 검색 표시 줄이 다시 나타난 후 더 이상 첫 번째 응답자가 될 수 없습니다.
은 검색 자체가 이런 식으로 (사용자가 입력을 시작하는 검색 창 내에서 활용할 수있다) 점멸에 caret가없는,
[self.searchController setActive:YES];
에 의해 수행 될 수 있지만.
나는 사건없이 UISearchController와 거의 동일한 UITableViewController를 가지고있다. 그래서 나는 뭔가를 놓쳐 버렸을 것입니다 만, 나는 이것을 해결하는데 어느 방향으로주의를 기울여야하는지에 대해 당신의 의견을 듣고 싶습니다.
다음은 검색 컨트롤러를 설정하는 방법입니다.
@interface MonthTableViewController() <UISearchResultsUpdating, UISearchControllerDelegate>
@property (nonatomic, strong) UISearchController *searchController;
UITableViewController *searchController = [[UITableViewController alloc]initWithStyle:UITableViewStylePlain];
searchController.tableView.dataSource = self;
searchController.tableView.delegate = self;
self.searchController = [[UISearchController alloc] initWithSearchResultsController:searchController];
self.searchController.searchResultsUpdater = self;
self.searchController.delegate = 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;
self.definesPresentationContext = YES;
// Hide search bar
CGRect myBounds = self.tableView.bounds;
myBounds.origin.y += self.searchController.searchBar.frame.size.height;
_lastlyAddedTableBoundY = self.searchController.searchBar.frame.size.height;
self.tableView.bounds = myBounds;