가 좋아 나는 그것이 해킹의 비트처럼 보인다, 내가 그것을 가지고 생각하지만 내 목적을 위해 작동 : 나는 스토리 보드를 사용하고
: 내가 직접 그 위에 UISearchBarDisplayController와 jQuery과 컨트롤러를 가지고있다. 드래그 앤 드롭만으로는 코드가 없습니다. 나만이 아닌 검색 배열, 원래의 배열에서 셀을 표시 할 수 것입니다 : 거기에서
, 나는 검색 창 올바르게 http://clingingtoideas.blogspot.com/2010/02/uitableview-how-to-part-2-search.html
그러나 prepareForSegue 검색 갈 수있는이 튜토리얼을 따라 갔다.
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if (savedSearchTerm) {
searchRowSelected = indexPath.row; //<-- the trick that worked
[self performSegueWithIdentifier:@"ShowDetail" sender:self];
}
}
searchRowSelected 내가 클래스의 상단에 선언하는 int 변수입니다 :
그래서 나는 didSelectRowAtIndexPath을 사용했다.
didSelectRowAtIndexPath : 내가 선택한 행을 알고 있지만 prepareForSegue는 알지 못했습니다. 왜 그 변수가 필요한지. 내가 prepareForSegue에서 그것을 사용하는 방법을
이
은 다음과 같습니다
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if ([segue.identifier isEqualToString:@"ShowDetail"]) {
dvc = [segue destinationViewController];
NSIndexPath* path = [self.tableView indexPathForSelectedRow];
int row = [path row];
if (savedSearchTerm){ //set the detailViewController with the searched data cell
myDataClass* c = [searchResults objectAtIndex:searchRowSelected];
dvc.myDataClass = c;
}else{ //set the detailViewController with the original data cell
myDataClass* c = [array objectAtIndex:row];
dvc.myDataClass = c;
}
}
}
또한 사람이 더 나은 솔루션이있는 경우 savedSearchTerm에게
-(void) searchDisplayControllerWillEndSearch:(UISearchDisplayController *)controller{
[self setSavedSearchTerm:nil];
}
을 정리하기 위해이 코드를 사용 나는 모든 귀 해요 :)
/How/how는'prepareForSeque : sender :'를 구현 했습니까? http://stackoverflow.com/questions/10033279/prepareforsegue-after-uisearchdisplaycontroller/19814031#19814031 – hop