У меня есть UITableView, что на didSelectRowAtIndexPath толкает другую UITableView, чтобы сделать поиск ...UISearchBar кнопка отмены аварии
LocationSearchViewController *locationSearchViewController = [[LocationSearchViewController alloc] initWithNibName:@"LocationSearchViewController" bundle:nil];
locationSearchViewController.delegate = self;
UITableViewCell *cell = [myTableView cellForRowAtIndexPath:indexPath];
locationSearchViewController.defaultLocation = cell.detailTextLabel.text;
[[self navigationController] pushViewController:locationSearchViewController animated:YES];
[locationSearchViewController release];
Вид поиска содержит UISearchBar с его отмены включена кнопка. Если пользователь нажал кнопку отмены, приложение вылетает с помощью objc_exception_throw. Консоль отображает ...
2011-02-06 22: 05: 43,960 JetLogger [2381: 207] * отказ Assertion в - [UISearchDisplayController SetActive: анимированные:]/SourceCache/UIKit_Sim/UIKit- 1447.6.4/UISearchDisplayController.m: 589
Если, однако, пользователь вводит элемент в виде таблицы (результаты поиска) Я закрывающие вид поиска и нет никакой аварии. Я не могу понять, почему разница, как я выскакиваю вид поиска с тем же кодом ...
В LocationSearchViewController ...
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
if ([self.delegate respondsToSelector:@selector(locationSearchViewDidDismiss:withLocation:)]) {
[self.delegate locationSearchViewDidDismiss:self withLocation:[tableView cellForRowAtIndexPath:indexPath].textLabel.text];
}
}
- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar{
if ([self.delegate respondsToSelector:@selector(locationSearchViewDidDismiss:withLocation:)]) {
[self.delegate locationSearchViewDidDismiss:self withLocation:@"No results found"];
}
}
В делегате ...
- (void)locationSearchViewDidDismiss:(LocationSearchViewController *)controller withLocation:(NSString*)location{
if((location != @"") && (location != @"No results found")){
//update the table data
[myTableView reloadData];
}
[self.navigationController popViewControllerAnimated:YES];
}
Любая помощь приветствуется.
John
+1 для включения регистратора сообщение. Я столкнулся с этим сегодня (в xcode 4.1), и решение Ариэля было правильным. – livingtech