需要UINavigationController的帮助

时间:2011-09-20 13:54:21

标签: iphone uinavigationcontroller

我有一个名为CataloguesEtTarifsPDFViewController的类,它显示了一个tableView。 现在,在这个课程中,我想创建一个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];

}

但是当我跑步并点击桌面时,没有任何反应......没有出现视图!!!我哪里出错?

重要:我没有委托文件。只有CataloguesEtTarifsPDFViewController.h CataloguesEtTarifsPDFViewController.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];
}

2 个答案:

答案 0 :(得分: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属性将自动找到并返回它。

答案 1 :(得分:1)

你在viewDidLoad中所做的是错误的。

无论您在哪里展示CataloguesEtTarifsPDFViewController,都应该将其包装在UINavigationController中并改为显示UINavigationController。

这将确保将设置UIViewController的navigationController属性。

在tableView:didSelectRowAtIndexPath:方法中,您应该释放webViewController变量而不是navigationController属性。