我在iOS 5中工作,在加载我的应用程序之前,我想打开另一个视图控制器,用户应该输入一些数据,例如.password,当密码匹配时,应用程序将被打开,我是没有得到如何做到这一点..我尝试了一些代码,我在下面写了
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
if(somecondition)
{
ViewController *View =[[ViewController alloc]initWithNibName:@"ViewController" bundle:nil];
[_window addSubview:View.view];
}
return YES;
}
但我不知道这是否正确,所以朋友们,请帮帮我..
此致 Ranjit
答案 0 :(得分:4)
你应该使用
[self.window setRootViewController:yourViewController]
而不是addSubview
到您的窗口
顺便说一句,在询问之前搜索是一个好习惯。 ;)
如果要显示loginView或loadingView之类的视图,可以将其设置为rootViewController,加载后,可以重置rootViewController。
请注意,在ProjectAppDelegate.m中,您可以获得window
按self.window
,在其他子视图控制器中,您需要
[[[UIApplication sharedApplication] delegate] window]
获取主窗口。
满足您要求的另一种简单方法是您可以在展示应用之前提供modalView
。完成后关闭它,然后启动您的应用程序。
您可以获得更多建议HERE。
顺便说一句,对不起,我几天前在其他用户评论区写的时候没有收到您的评论通知。 :(当您在其他地方发表评论时,您应该在用户名前添加@
。
答案 1 :(得分:2)
您可以创建一些bool
变量用于检查这是第一个开始还是另一个。存储此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;
}