2011-10-02 68 views
0

下面是代碼:返回酒吧並沒有在導航控制器顯示

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    DrinkDetailViewController *detailViewController = [[DrinkDetailViewController alloc] initWithNibName:@"DrinkDetailViewController" bundle:nil]; 

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

    [DrinkDetailViewController release]; 
} 

我想有一回吧去從細節視圖我的根視圖。我該怎麼做?

回答

1

有兩件事情看起來有點怪異這裏...希望固定EM會使背部BTN顯示:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
DrinkDetailViewController *detailViewController = [[DrinkDetailViewController alloc] initWithNibName:@"DrinkDetailViewController" bundle:nil]; 

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

//[self.navigationController popToRootViewControllerAnimated:YES]; <-- you just pushed a viewController onto the stack, and you're immediately removing it here and going to the root 

[detailViewController release]; //<-- you want to release the *instance* that you created... not the Class 
} 

UINavigationController應該照顧後退按鈕的你,據我知道。如果沒有,我會檢查一下,你的xib中的所有東西都已經正確連接了(如果有的話)。祝你好運!

0

用你的代碼,它仍然會推送到DrinkDetailViewController,但'popToRootViewController是完全不必要的。您應該刪除行類似如下..

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    DrinkDetailViewController *detailViewController = [[DrinkDetailViewController alloc] initWithNibName:@"DrinkDetailViewController" bundle:nil]; 

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

    [detailViewController release]; 
} 

而且我相信,你的背部按鈕不會在導航欄上顯示的原因是因爲你沒有把任何標題在你的根視圖。您可以在根視圖上將此代碼放在您的viewdidload方法上。

self.title = @"Your Title";