2011-09-18 42 views
1

我试图设置我的searchBar.text当我从视图1太视图2.我传递一个字符串到视图2成功但是我想设置字符串为searchBar.text过滤我的表格。这是我的代码到目前为止,但似乎没有工作。设置searchBar.text在视图中加载

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    self.title = NSLocalizedString(@"Places", nil); 
    self.managedObjectContext = [self getContext]; 
    UIBarButtonItem * sortButton = [[UIBarButtonItem alloc] initWithTitle:@"Sort" style:UIBarButtonItemStyleBordered target:self action:@selector(sort)]; 

    self.navigationItem.rightBarButtonItem = sortButton; 
    [sortButton release]; 

    //HIT WS TO SEE LAST UPDATED AND COMPARE TO STORED LAST UPDATED DATE 
    //IF WS HAS NEWER DATE,BLOW CD AWAY AND CALL getRSSDAta 

    self.searchBar.delegate = self; 
    self.title = @"Results"; 
    self.navigationController.navigationBarHidden = NO; 

    __tableView.delegate = self; 
    __tableView.dataSource = self; 
    searchedData = [[NSMutableArray alloc]init]; 
    tableData = [[NSMutableArray alloc]init]; 
    [tableData addObjectsFromArray:_PlaceArray];//on launch it should display all the records 

    [recurringArray initWithObjects:@"Alphabetical",@"Rating Low to High", @"Rating Hight to Low", nil]; 

    UIColor *background = [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"background_texture.png"]]; 

    self.view.backgroundColor = background; 

    [background release]; 


    recurringDate = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 190, 320, 200)]; 
    recurringDate.showsSelectionIndicator = YES; 
    recurringDate.delegate = self; 
    [recurringDate selectRow:0 inComponent:0 animated:YES]; 
    [self.view addSubview:recurringDate]; 

    recurringDate.hidden = YES; 

    NSLog(@"search text is %@", self.search); 

    searchBar.text = self.search; 
    [self searchBarSearchButtonClicked:searchBar]; 

} 

- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar 
{ 
    // only show the status bar’s cancel button while in edit mode 
    useSearchData = YES; 
    self.searchBar.showsCancelButton = YES; 
    self.searchBar.autocorrectionType = UITextAutocorrectionTypeNo; 
    // flush the previous search content 
    [tableData removeAllObjects]; 
} 

- (void)searchBarTextDidEndEditing:(UISearchBar *)searchBar 
{ 
    self.searchBar.showsCancelButton = NO; 
} 

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

    if([searchText isEqualToString:@""] && [__searchBar.text isEqualToString:@""]){  //if nothing is in the search bar show normal table 
     useSearchData = NO; 
     [self.tableView reloadData]; 
     [self.searchBar resignFirstResponder]; 
     return; 
    } 
    else 
    { 
      searchText = __searchBar.text; 

     useSearchData=YES; 

     NSPredicate * p = [NSPredicate predicateWithFormat:@"name contains[cd] %@",searchText]; //comparing stored locations to searchText 

     self.searchResults = [CoreDataBasicService fetchResultsForEnity:@"Place" WithPredicate:p andSortDiscriptor:@"name" Ascending:YES]; 

     [self.tableView reloadData]; 
    } 
} 

- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar 
{ 
    useSearchData = NO; 

    [self.searchResults removeAllObjects]; 
    [self.tableView reloadData]; 

    [self.searchBar resignFirstResponder]; 
    self.searchBar.text = @""; 


} 

-(void)searchBarSearchButtonClicked:(UISearchBar *)_searchBar 
{ 
    [searchBar resignFirstResponder]; 
} 

回答

0

听上去愚蠢,但请务必在IB有线起来,我都忘记了这样做的时候,我通过一些代码

+0

搜索工具已经被过滤原始表干扰。我只想在第一个视图中设置搜索文本,并将该字符串推送到第二个视图中的searchBar。字符串传递正常我似乎不能设置searchBar文本字符串self.search。 – Bradley