2012-04-28 80 views
0

我想用tableView创建一个应用程序,到目前为止我已经做到了我有一个填充的tableView,但我不能得到任何事情发生时,我按行。任何帮助,将不胜感激。如果你错过了一些代码来帮助我只是问,我会发布它。DidSelectRowAt ..没有任何反应

使用NSLog我已经确定,当我按下一行时调用该操作,但未推送下一个viewController。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 

    NSLog(@"DidSelectRow"); 

    // UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; 

    galleriaDetailViewController *galleriaDetail = [[galleriaDetailViewController alloc] initWithNibName:@"galleriaDetail" bundle:nil]; 
    [self.navigationController pushViewController:galleriaDetail animated:YES]; 


} 

谢谢!

+2

你确定'self.navigationController'不是'nil'? – 2012-04-28 19:06:28

+0

代码看起来很好(尽管vc上的命名约定以一个上限开头)。你可以NSLog(@“%@”,galleriaDetail);看看你是否得到一个新的VC?下一个嫌疑犯是你的navigationController是零。你也可以登录。 – danh 2012-04-28 19:07:14

+0

查看“galleriaDetail.xib”的拼写,可能是拼写错误:) – 2012-04-28 19:07:33

回答

1

从您的意见中我发现你正在使用故事板。如果你正在使用故事板的手段,那么你为什么要试图访问一个笔尖。

试试这个代码

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 

    NSLog(@"DidSelectRow"); 

    // UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; 

    galleriaDetailViewController *galleriaDetail = [self.storyboard instantiateViewControllerWithIdentifier:@"galleriaView"]; // galleriaView is a identifier for that view.you have to set in your storyboard 
    [self.navigationController pushViewController:galleriaDetail animated:YES]; 


} 
+0

感谢您的帮助,正如我刚才所说的,我刚刚开始学习。在检查标识符正确之后,我尝试了它,但仍然没有任何反应。该行被突出显示,然后什么都没有。 – 2012-04-28 19:42:29

+0

然后确切地说,你的问题是你的导航控制器不工作。你必须在你的AppDelegate中为它设置一个属性并合成。我认为它是autoreleased。你必须保留它。 – 2012-04-28 19:48:55

+0

http://stackoverflow.com/questions/6587749/uinavigationcontroller-not-working – 2012-04-28 19:50:30

0

您是否设置了代表?您需要设置myTableView.delegate = self;并设置数据源。您可以在界面构建器中以编程方式挂接委托。

+1

他已经到了NSLog,所以代表可能没关系。 – danh 2012-04-28 19:07:59

+0

对不起。我现在看到了,是的。我会评论没有回答,但没有特权:) – Majster 2012-04-28 19:12:11

+1

无后顾之忧。很高兴你帮忙。不设置委托/数据源可能是这些事情的头号错失,所以这是一个很好的想法。 – danh 2012-04-28 19:15:16