2011-07-10 56 views
0

我是一個新手編程,我有一個基於視圖的應用程序,從SQLite數據庫收集數據,並在表中顯示它。我已經工作了很多,但是我無法讓應用程序在選擇表格上的項目後顯示詳細的視圖。這是我的代碼,如果有人可以幫忙。詳細視圖不顯示從表視圖

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

    if (dvController == nil) 
     dvController = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle: nil]; 

    Clubs *clubObj = [appDelegate.clubArray objectAtIndex:indexPath.row]; 

    [clubObj hydrateDetailViewData]; 

    dvController.clubObj = clubObj; 

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

} 

-(void)viewDidLoad { 
[super viewDidLoad]; 

appDelegate = (ClubFindAppDelegate *) [[UIApplication sharedApplication] delegate]; 
self.title = @"Back"; 

}

任何幫助將appreiciated。 謝謝

+0

你是否密切關注你的clubObj的保留數量? –

+0

對不起這是什麼意思?@calvinBhai – Wayne

+0

@Wayne thelaws是正確的在viewBased模板導航控制器不存在。您應該使用包含導航控制器和tableView的navigationBased模板來啓動您的應用程序。 –

回答

1

如果您開始使用基於視圖的應用程序,也許您的視圖控制器沒有可用的self.navigationController實例。您的視圖控制器必須位於導航控制器堆棧中以推送更多視圖控制器。

要打開一個視圖基於應用到一個與導航控制器你真正需要做的是編輯應用程序的委託如下:

// view based app template code 
self.window.rootViewController = self.viewController; 

成爲

UINavigationController * controller = [[UINavigationController alloc] initWithRootViewController:self.viewController]; 
self.window.rootViewController = controller; 

您可能還需要將navigationController另存爲應用程序委託的屬性。

+0

如果你沒有使用rootViewController的方式來設置視圖,就像在我的編輯中一樣,用第二行代替:[self.window addSubview:controller.view]; – thelaws

+0

我已經添加了一個naigation控制器到appDelegate,如下面我的代碼所示。如何將詳細視圖連接到控制器'[self.window addSubview:navigationController.view]; [self.window addSubview:viewController.view]; [self.window makeKeyAndVisible];返回YES; }'我認爲這是正確的,因爲我不需要導航控制器首先設置表(這是正常工作)@thelaws @Rahul Vyas – Wayne

+0

@Wayne請參閱我編輯的答案,以瞭解如何創建viewController在navigationcontroller裏面。一般來說,你不應該添加兩個視圖控制器到你的窗口。 – thelaws

相關問題