2014-12-12 3 views
2

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; 

답변

1

Xcode > Product > Analyze으로 해결했습니다.

나는 단순히이 UITableViewController 대응에 -(void)ViewWillAppear:(BOOL)animated 내부

[super viewWillAppear:(BOOL)animated]; 

를 추가하는 것을 잊었다.

나의 실수는 미래에 누군가의 시간을 절약 할 수 있기를 바랍니다.

관련 문제