xCode如果UITableView Cell Contents isEqual

时间:2011-03-07 01:56:11

标签: xcode uitableview uiview row

所以现在我有以下代码:

if ([[contentsList objectAtIndex:indexPath.row] isEqual:@"Hydrogen"])
{
Hydrogen *hydrogen = [[Hydrogen alloc] initWithNibName:@"Hydrogen" bundle:nil];
[self.navigationController pushViewController:hydrogen animated:YES];
hydrogen release];
}

基本上,这段代码表示如果行等于“Hydrogen”(这是UITableView中的一行),那么它将加载名为“Hydrogen.xib”的XIB但是,当我添加一个搜索栏时我的代码,搜索工作正常,但当我点击结果时,显示的行始终是表中的第一行。我如何解决这个问题,我认为它与上面代码中的行有关...

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以复制数组,但将视图控制器作为字符串放入。 然后使用:

Class detailClass = NSClassFromString([controllersArray objectAtIndex:[indexPath row]]);

UIViewController* detailViewController = [[[detailClass alloc] initWithNibName:nil bundle:nil] autorelease];

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