当第一个字母按下UISearchbar字段时,UISearchbar消失,iOS7

当第一个字母按下UISearchbar字段时,UISearchbar消失,iOS7,ios,ios7,uisearchbar,uisearchdisplaycontroller,Ios,Ios7,Uisearchbar,Uisearchdisplaycontroller,这里是我在view controller.h中的代码 #import "AppDelegate.h" @interface SearchRsultsFanSideViewController : UIViewController<UISearchBarDelegate,UISearchDisplayDelegate> { } @property (strong, nonatomic) IBOutlet UISearchBar *searchData; @property (st

这里是我在view controller.h中的代码

#import "AppDelegate.h"

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


@property (strong, nonatomic) UISearchDisplayController *controller;
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];

}
试试这个

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

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

filterData>的用途是什么?什么是self.searchDisplayController?我使用了y的故事板我使用了用于谓词数组的filterData方法隐藏此代理的错误时,您的图幅是否会更改,并检查搜索栏框,搜索时的当前设置
-(void) viewDidLayoutSubviews {
    [super viewDidLayoutSubviews];
    if (self.searchDisplayController.isActive) {
        [self.navigationController setNavigationBarHidden:YES animated:YES];
    }
}