用tabBarController登录facebook

时间:2013-11-23 02:32:57

标签: ios objective-c facebook

我正在尝试在我的应用上添加Facebook登录功能。但是,它以某种方式给出了一个错误“'UIViewControllerHierarchyInconsistency',原因是:'将根视图控制器添加为视图控制器的子代:' ”。 我的应用代表编写如下。任何人都可以给我一个如何解决问题的建议吗?

AppDelegate.h

    @property (strong, nonatomic) UITabBarController *tabBarController;
    @property (strong, nonatomic) UINavigationController *navigationController;
    @property (strong, nonatomic) LoginViewController* loginViewController;
    @property (strong, nonatomic) FirstViewController *mainViewController;

AppDelegate.m

    self.loginViewController = [[LoginViewController alloc] initWithNibName:@"LoginViewController"
                                                                   bundle:nil];
    self.navigationController = [[UINavigationController alloc] initWithRootViewController:self.loginViewController];
    self.navigationController.delegate = self;
    self.window.rootViewController = self.navigationController;

    [self.window makeKeyAndVisible];

    //mainwindow
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // ViewControllers array
    NSMutableArray *viewControllers = [[NSMutableArray alloc] init];
    [self resetMainViewController];

    //homeview
    self.mainViewController = [[FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:nil];
    //adding navigation controller
    self.navigationController = [[UINavigationController alloc] initWithRootViewController:self.mainViewController];
    [viewControllers addObject:self.navigationController];
    self.window.rootViewController = self.navigationController;
    [self.window makeKeyAndVisible];

    //secondview
    SecondViewController *viewController2 = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];
    //adding navigation
    UINavigationController *navController2 = [[UINavigationController alloc] initWithRootViewController:viewController2];
    [viewControllers addObject:navController2];

    // Thirdview
    ThirdViewController *viewController3 = [[ThirdViewController alloc] initWithNibName:@"ThirdViewController" bundle:nil];
    //adding navigationcontroller
    UINavigationController *navController3 = [[UINavigationController alloc] initWithRootViewController:viewController3];
    [viewControllers addObject:navController3];

    //fourthview
    FourthViewController *viewController4 = [[FourthViewController alloc] initWithNibName:@"FourthViewController" bundle:nil];
    //adding navigation controller
    UINavigationController *navController4 = [[UINavigationController alloc] initWithRootViewController:viewController4];
    [viewControllers addObject:navController4];

    //fifthviewcontroller
    FifthViewController *viewController5 = [[FifthViewController alloc] initWithNibName:@"FifthViewController" bundle:nil];
    //adding navigation controller
    UINavigationController *navController5 = [[UINavigationController alloc] initWithRootViewController:viewController5];
    [viewControllers addObject:navController5];


    //tabbarcontroller
    self.tabBarController = [[UITabBarController alloc] init];
    [self.tabBarController setViewControllers:viewControllers];

    self.window.rootViewController = self.tabBarController;
    [self.window makeKeyAndVisible];

谢谢。

1 个答案:

答案 0 :(得分:0)

您在开始时将self.navigationController设置为self.window.rootViewController,然后将其添加到viewcontrollers的{​​{1}},这就是问题所在。您应该删除所有其他self.tabBarController作业,并保留最后一个。