2011-07-06 117 views
0

我是新手編程,我有以下問題。更改主視圖後,詳細的表視圖不工作

我有一個基於導航的應用程序,該應用程序可以從表中的SQLite數據庫中提取數據,該數據庫可以深入到詳細視圖。我已經改變了應用程序的主視圖,以呈現登錄視圖。

登錄視圖起作用,表格呈現正確的數據並且正常工作,但是我無法再獲取詳細的視圖來工作。該應用程序不凍結或崩潰,沒有錯誤,但不會顯示詳細的視圖。此外,登錄視圖在標題中有一個後退按鈕,顯示已刪除的視圖。我認爲問題在於下面的代碼,但我不確定(也許是appDelegate)。

此代碼來自RootViewController。

- (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 = (SQLAppDelegate *) [[UIApplication sharedApplication] delegate]; 
    self.title = @"Back"; 

} 

回答

0

我認爲你有一個結構性問題。這是我會做的:

  1. 更改應用程序,使它以一個簡單的(非UINavigation)視圖開始。這是您的登錄視圖。

  2. 當該視圖成功驗證用戶時,使用removeFromSuperview和addSubView方法將視圖更改爲導航視圖(和控制器),以從窗口中刪除登錄視圖和控制器,並用導航視圖和控制器替換它們。

的基本思想是不使用導航爲基礎的系統,直到你的用戶已經登錄。您的描述聽起來好像你開始使用導航視圖,然後試着添加登錄。相反,它更容易。

+0

謝謝。我希望我不必再開始。 – Wayne

相關問題