0

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

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

这是我的应用程序流程登录屏幕-> 选项卡应用程序 Tab1。显示详细信息选项卡 2。查看工单(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;
}
4

1 回答 1

0

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

于 2012-05-08T03:09:32.150 回答