我遇到一些问题,让我的应用在启动时正确启动正确的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(我还没有命名),该视图如下所示:
由于我的appdelegate编码,弹出的视图被称为WelcomeView,并且还有一个tabbarcontroller。 (注意:用户登录后会显示此视图的tabBarController)该视图如下所示:
我的问题是:为了在启动时显示我的CRViewController,我需要更改什么?还有一种方法可以将我的聊天XIB导航栏中的导航添加回我的CRViewController,它还将使用主菜单TabBar呈现我的CRViewController吗?如果需要更多信息,请不要犹豫!谢谢!
答案 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
}
希望这会有所帮助.. :)