2012-04-28 194 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