如何在iOS应用程序启动之前打开一个ViewController
我在iOS 5中工作,并加载我的应用程序之前,我想要打开另一个视图控制器,用户应该input一些数据,例如密码和密码匹配,应用程序将被打开,我不明白如何做这个..我尝试了一些代码,我已经写在下面
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { if(somecondition) { ViewController *View =[[ViewController alloc]initWithNibName:@"ViewController" bundle:nil]; [_window addSubview:View.view]; } return YES; }
但是我不知道这是不是一个正确的方式,所以朋友们,请帮助我..
关心Ranjit
你可以创build一些bool
variables来检查这是第一个开始或另一个。 存储这个bool
的最好的地方是NSUserDefaults。 那么,如果这是第一次启动,那么显示你的LoginViewController,如果没有 – 执行常规代码:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { UIViewController *startVC = nil; if (isFirstLaunch){ startVC = [[[LoginViewController alloc] initWithNibName:@"LoginView" bundle:nil] autorelease]; } else{ startVC = [[[WorkspaceViewController alloc] initWithNibName:@"WorkspaceView" bundle:nil] autorelease]; } navController = [[UINavigationController alloc] initWithRootViewController:startVC]; [self.window makeKeyAndVisible]; [self.window addSubview:navController.view]; return YES; }
你应该使用
[self.window setRootViewController:yourViewController]
而不是addSubview
到你的窗口。
顺便问一下,寻求是一个好习惯。 ;)
如果你想显示一个像loginView或loadingView这样的视图,你可以将它设置为你的rootViewController,在加载的时候,你可以重置你的rootViewController。
注意,在你的ProjectAppDelegate.m中,你可以通过self.window
获得window
,而在其他子视图控制器中,你需要
[[[UIApplication sharedApplication] delegate] window]
得到你的主窗口。
满足您的要求的另一个简单方法是,您可以在展示您的应用程序之前展示一个modalView
。 完成后closures它,然后启动你的应用程序。
你可以在这里得到更多的build议。
顺便说一句,对不起,我没有得到您的意见通知,当你在其他用户评论区前几天写。 :(当你在其他地方发表评论时,你应该在用户名之前加@
。