在使用情节提要的项目中,我有一个带有 UISearchBar 的 UITableView。
搜索功能没有问题。
我将单元格链接到 Seague Push 到下一个视图。
如果我选择一个单元格,则会加载下一个视图并且一切正常。
一切都很完美,直到我使用 UISearchBar,然后停止工作 Segue Push,当我选择过滤的单元格时,我无法进入下一个视图。
该怎么办?强制转场。
此链接上的项目模型:
http://uploaded.to/file/ooohrxnf
//Code for search
- (BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString
{
[searchData removeAllObjects];
NSArray *group;
for(group in arraynumbers)
{
NSMutableArray *newGroup = [[NSMutableArray alloc] init];
NSString *element;
for(element in group)
{
NSRange range = [element rangeOfString:searchString options:NSCaseInsensitiveSearch];
if (range.length > 0) {
[newGroup addObject:element];
}
}
if ([newGroup count] > 0) {
[searchData addObject:newGroup];
}
}
onTableData = searchData;
return YES;
}
// Force Segue when UISearchBar isActive
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if (self.searchDisplayController.isActive) {
NSMutableArray *mutablerray = [searchData objectAtIndex:indexPath.section];
number = [mutablerray objectAtIndex:indexPath.row];
[self performSegueWithIdentifier:@"detail" sender:self];
searchBar.text = @"";
}
}
// pickup number when UISearchBar isNotActive and reloadData after Segue
- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"detail"])
{
if (!self.searchDisplayController.isActive)
{
number = [[onTableData objectAtIndex:[[self.tableView indexPathForSelectedRow] section]] objectAtIndex:[[self.tableView indexPathForSelectedRow] row]];
}
NSLog(@"number: %@", number);
[segue.destinationViewController setNumber:number];
[self.tableView reloadData];
}
}