带多个控制器的iPhone应用程序

时间:2012-05-08 02:39:42

标签: iphone objective-c

我正在使用登录屏幕(UIViewController)开发一个应用程序(使用Storyboard),它将经过身份验证的用户带到Tab应用程序(UITabbarController)。其中一个Tab Bar Item基于Table View Controller,我为其添加了UINavigationController。为了开发Table屏幕,我正在关注iOS 5第2部分(Bird Sighting Example)。我已经成功创建了整个应用程序,除了这个表部分。我在AppDelegate中感到困惑,因为我的根视图控制器在BirdSighting示例中是登录屏幕在大多数示例中,应用程序从导航视图控制器或Tabbar控制器启动。我正在粘贴我的AppDelegate方法。

这是我得到的运行时错误  “由于未捕获的异常'NSInvalidArgumentException'终止应用程序,原因:'不支持推送导航控制器'”

这是我的应用流程 登录屏幕 - > 标签应用 TAB1。显示详细资料 TAB2。查看故障单(TicketMasterViewController) - >故障单详细信息(TicketDetailViewController)。

我是否需要初始化AppDelegate中的所有控制器以及TicketMasterViewController的objectAtIndex应该是什么。 谢谢你的时间。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

    NavigationViewController *vc4=[[NavigationViewController alloc]init];


    UINavigationController *navigationController=[[UINavigationController alloc]initWithRootViewController:vc4];
    TicketMasterViewController *firstViewController=(TicketMasterViewController *)[[navigationController viewControllers] objectAtIndex:0];
    TicketDataController *aDataController=[[TicketDataController alloc] init];
    firstViewController.dataController=aDataController;  

    // Override point for customization after application launch.
    return YES;
}

1 个答案:

答案 0 :(得分:0)

您可以尝试删除上述代码,该应用可能会运行。如果您使用故事板并假设您已按上述方法设置此视图控制器层次结构,则不需要此代码。在这里添加代码的唯一原因是将数据(MVC中的模型)附加到视图控制器。