2011-09-20 54 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