的UISearchBar消失时,第一个字母按领域的UISearchBar,iOS7

问题描述:

这里我的代码鉴于或者Controller.h的UISearchBar消失时,第一个字母按领域的UISearchBar,iOS7

#import "AppDelegate.h" 

@interface SearchRsultsFanSideViewController : UIViewController<UISearchBarDelegate,UISearchDisplayDelegate> 
{ 
} 
@property (strong, nonatomic) IBOutlet UISearchBar *searchData; 


@property (strong, nonatomic) UISearchDisplayController *controller; 

在viewcontroller.m

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    searchResults=[[NSArray alloc]init]; 
self.controller = [[UISearchDisplayController alloc]initWithSearchBar:searchData contentsController:self]; 
    self.controller.searchResultsDataSource = self; 
    self.controller.searchResultsDelegate = self; 
} 

委托方法的UISearchBar

#pragma Mark - SearchBar Delegate 

- (void)filterData 
{ 

searchResults = nil; 

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF contains [cd] %@", searchData.text]; 
NSArray *arrayaaa=[finalArray copy]; 
NSLog(@"The result Datas==%@",arrayaaa); 
searchResults = [[arrayaaa filteredArrayUsingPredicate:predicate] mutableCopy]; 


} 

- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText { 

[self.searchDisplayController setActive:YES]; 

[self filterData]; 

} 
+0

有什么用筛选数据的>? –

+0

什么是self.searchDisplayController? – Tendulkar

+0

我使用了故事板这是你用的 –

试试这个

- (void)searchDisplayControllerDidBeginSearch:(UISearchDisplayController *)controller{ 
    [controller.searchBar setFrame:CGRectMake(44, 0, 320 - 44, 43)]; 
    [self.searchDisplayController.searchResultsTableView setDelegate:self]; 
} 
+0

显示没有更改兄弟 –

+0

在此代理处调试您的代码并检查搜索栏框架,搜索时当前设置的是什么 – Retro

试试这个:

-(void) viewDidLayoutSubviews { 
    [super viewDidLayoutSubviews]; 
    if (self.searchDisplayController.isActive) { 
     [self.navigationController setNavigationBarHidden:YES animated:YES]; 
    } 
}