Передача строки в другое представление - PullRequest
0 голосов
/ 08 сентября 2011

У меня есть UITextField в моем первом представлении, которое принимает критерии поиска, однако мое окно поиска находится во втором представлении. Идея состоит в том, чтобы передать данные текстового поля, которые пользователь вводит в поле поиска, которое фильтрует табличное представление во втором контроллере представления. Я попытался установить secondviewcontroller.searchText = self.search.text, однако он не обновляет поле поиска во втором контроллере представления новыми данными. Мой код выглядит следующим образом:

Первый вид.м

- (IBAction)search:(id)sender
{
    PlaceList *placelist = [[PlaceList alloc] initWithNibName:@"PlaceList" bundle:nil];

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

    placelist.searchBar.text = search.text;

    [self.navigationController pushViewController:placelist animated:YES];

    [placelist release]; 

}

PlaceList.m

#pragma mark UISearchBarDelegate

- (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];
}

Когда нажата поисковая IBAction, я хочу перейти к представлению placeList и обновить поиск текстом, введенным пользователем в текстовое поле на первом контроллере представления.

Заранее спасибо.

1 Ответ

1 голос
/ 13 сентября 2011

Попробуйте инициализировать PlaceList (VC) поисковым текстом, сохранив его в переменной экземпляра.Затем в методе ViewDidLoad вашего PlaceList (VC) укажите текст

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...