代码之家  ›  专栏  ›  技术社区  ›  sprain

iPhone SDK:无法为导航控制器指定视图

  •  0
  • sprain  · 技术社区  · 16 年前

    我正在开发我的第一个iPhone应用程序,并取得了很好的进展。但有一件事我不明白。

    问题是,只要加载HistoryViewController,应用程序就会崩溃,因为没有视图。这是真的,因为在xib文件中,我无法将文件所有者的视图连接到任何内容: http://www.freeimagehosting.net/image.php?1a3caa8b8d.png

    我肯定在某个地方缺乏知识,但经过几个小时的研究,我没能解决这个问题。

    有什么提示吗?

    2 回复  |  直到 16 年前
        1
  •  -1
  •   Ron Srebro    16 年前

    很难说你到底有什么问题,但我会给你一些建议。

    一般来说,我真的不喜欢在InterfaceBuilder中构建UI导航控制器或选项卡视图控制器,我真的只是构建视图本身,并在代码中创建UINavigationController。

    您有一个视图,其中显示了要包含在UINavigationController中的HistoryTableViewController,因此执行此操作的代码是:

    - (void) showHistory 
    {
          HistoryViewController *historyVC = [[HistoryViewController alloc] init];
          // If you create historyviewcontroller in nib
          // HistoryViewController *histroyVC [[HistoryViewController alloc] initWithNibName:@"myNib" bundle:nil];
    
          UINavigationController *navController = [[UINavigationController alloc] initWithRootController:histroyViewController];
          [self presentModalViewContoller:navController animated:YES];
    }
    

        2
  •  0
  •   mvds    16 年前

    通常你会:

    或

    • 双击该底线(HTVC),弹出320x480预览窗口,然后从库中拖入UIView。

    使用第一种方法,您告诉视图控制器动态加载NIB作为要连接的视图,使用第二种方法,您使用IB为视图控制器执行此操作。然后,您拖入的视图将显示为该底线(HTVC)的子视图。

    编辑 要实际加载您创建的nib文件,请执行以下操作以推送视图控制器:

        UIViewController *controller = [[UIViewController alloc] autorelease];
        [controller initWithNibName:@"nibfilename" bundle:nil];
        [self.navigationController pushViewController:controller animated:YES];