2011-09-20 63 views
0

我有一個叫CataloguesEtTarifsPDFViewController的類,它顯示一個tableView。 現在,這個類裏面我想創造一個UINavigationController並設置UINavigationController根這個類:需要幫助UINavigationController

這裏是我做過什麼:

CataloguesEtTarifsPDFViewController.h 

UINavigationController *navigationController; 

在實現文件

CataloguesEtTarifsPDFViewController.m 

- (void)viewDidLoad 
{ 

    CataloguesEtTarifsPDFViewController *catalog =[[CataloguesEtTarifsPDFViewController alloc] init]; 

    loadingView.hidden=YES; 
    navigationController = [[UINavigationController alloc] initWithRootViewController:catalog]; 

} 

當我點擊表格單元我這樣做:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    WebViewController *webViewController = [[WebViewController alloc] init]; 

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

    [navigationController release]; 

} 

但是當我運行並點擊tableView時,什麼都沒有發生...沒有看到顯示!!!我在哪裏錯了?

重要:我沒有委託file.Only CataloguesEtTarifsPDFViewController.hCataloguesEtTarifsPDFViewController.mCataloguesEtTarifsPDFViewController.xib

編輯:

- (IBAction)showViewCataloguesEtTarifsPDF:(id)sender{ 
    // Remove view to middleView 
    [mainMenuViewController removeViewsToMiddleView]; 
    // create view controller 
    cataloguesEtTarifsPDFViewController = [[CataloguesEtTarifsPDFViewController alloc] init]; 
    cataloguesEtTarifsPDFViewController.mainMenuViewController = mainMenuViewController; 

    // hide/show header button 
    [mainMenuViewController.headerViewController showMainMenuButton]; 
    // highlight footer tabbar button 
    [mainMenuViewController.footerViewController.footerTabBar setSelectedItem:mainMenuViewController.footerViewController.footerTabBarItemMyAudi]; 
    UINavigationController* navigationController = [[UINavigationController alloc] initWithRootViewController:cataloguesEtTarifsPDFViewController]; 
     [self presentModalViewController:navigationController animated:YES]; 
} 
+1

這完全搞砸了。你爲什麼想要在viewDidLoad方法中創建另一個視圖控制器實例? 您爲視圖層次結構創建了一個導航控制器。然後,您可以在一個導航控制器上打開/關閉視圖控制器。 –

+0

我相信是完全搞砸了。幫我做對了! – adrian

+0

事情是,當我點擊tableView我想推入導航控制器一個新的View.And我必須先啓動該navigationController ....這就是爲什麼我做了我所做的 – adrian

回答

1

你或許應該這樣說的:http://www.iosdevnotes.com/2011/03/uinavigationcontroller-tutorial/ 或者這樣:http://developer.apple.com/library/ios/#featuredarticles/ViewControllerPGforiPhoneOS/Introduction/Introduction.html#//apple_ref/doc/uid/TP40007457-CH1-SW1

或觀看此:http://peepcode.com/products/iphone-view-controllers-part-i

這會給你的基礎知識,你就可以設備齊全的回答你的問題並修復你的代碼:)

PS:你不必探索在你的視圖控制器中創建並設置一個UINavigationController。如果視圖控制器嵌入到導航控制器中,則視圖控制器實例的navigationController屬性將自動找到並返回它。

+0

問題是,我沒有創建一個UINavigationController就像在教程中一樣。你能幫我創建它嗎? – adrian

+0

嘿喬治,如果在閱讀過我指出的文檔後仍然無法解決您的問題,我很樂意提供幫助。 –

+0

我確實解決了這個問題。你對德語好:) – adrian

1

你在viewDidLoad中做了什麼是錯誤的。

無論您在何處展示CataloguesEtTarifsPDFViewController,都應該將其包裝在UINavigationController中,然後顯示UINavigationController。

這將確保UIViewController的navigationController屬性將被設置。

在你的tableView:didSelectRowAtIndexPath:方法中,你應該釋放webViewController變量而不是navigationController屬性。

+0

請看我的編輯。我按你的說法做了,但它只顯示一個空屏幕。我想知道爲什麼? – adrian