初始视图应用程序代表问题

时间:2015-01-25 05:58:07

标签: ios objective-c xcode uitabbarcontroller

我遇到一些问题,让我的应用在启动时正确启动正确的View Controller。我在main.Storyboard中使用箭头设置了初始视图控制器。但是我的部分应用程序功能聊天。在didfinishLaunchingWithOptions下的AppDelegate.M文件中,我有这样的编码:

    //---------------------------------------------------------------------------------------------------------------------------------------------
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

    self.groupView = [[GroupView alloc] init];
    self.privateView = [[PrivateView alloc] init];
    self.messagesView = [[MessagesView alloc] init];
    self.profileView = [[ProfileView alloc] init];

    NavigationController *navController1 = [[NavigationController alloc] initWithRootViewController:self.groupView];
    NavigationController *navController2 = [[NavigationController alloc] initWithRootViewController:self.privateView];
    NavigationController *navController3 = [[NavigationController alloc] initWithRootViewController:self.messagesView];
    NavigationController *navController4 = [[NavigationController alloc] initWithRootViewController:self.profileView];

    self.tabBarController = [[UITabBarController alloc] init];
    self.tabBarController.viewControllers = [NSArray arrayWithObjects:navController1, navController2, navController3, navController4, nil];
    self.tabBarController.tabBar.translucent = NO;
    self.tabBarController.selectedIndex = DEFAULT_TAB;

    self.window.rootViewController = self.tabBarController;
    [self.window makeKeyAndVisible];
    //---------------------------------------------------------------------------------------------------------------------------------------------
    return YES;
}

我想我太过于知道如何解决这个问题......但是让我更好地解释一下发生了什么。我的聊天是在XIB完成的,我的应用程序的其余部分都在StoryBoards界面上完成。我希望人们看到的ViewController被称为CRViewController并连接到tabBarController(我还没有命名),该视图如下所示: Main Menu

由于我的appdelegate编码,弹出的视图被称为WelcomeView,并且还有一个tabbarcontroller。 (注意:用户登录后会显示此视图的tabBarController)该视图如下所示: Chat Welcome Screen

我的问题是:为了在启动时显示我的CRViewController,我需要更改什么?还有一种方法可以将我的聊天XIB导航栏中的导航添加回我的CRViewController,它还将使用主菜单TabBar呈现我的CRViewController吗?如果需要更多信息,请不要犹豫!谢谢!

2 个答案:

答案 0 :(得分:0)

用于将CRViewController设置为初始视图控制器。您需要更改didfinishLaunchingWithOptions之类的内容:

CRViewController *crv = [[CRViewController alloc] init];
self.window.rootViewController = crv;

或者在您的故事板中提供故事板ID并更改上面的代码,如:

CRViewController *crv = (CRViewController *)[[UIStoryboard storyboardWithName:@"YourStoryboardName" bundle: nil] instantiateViewControllerWithIdentifier:@"YourCRVId"];
self.window.rootViewController = crv;

答案 1 :(得分:0)

将CRViewController设置为初始rootViewController。

CRViewController *crv = [[CRViewController alloc] init];
self.window.rootViewController = crv;

成功登录后,只需更改应用的rootViewCOntroller。

if(loggedIn) {
    //Change the rootViewController
}

希望这会有所帮助.. :)