我有两个 View - view1 和 view2。
View1 是我从 mainwindow.xib 加载的默认 View Controller 。
根据某些条件检查,我想加载 View1 或 View2,如果用户注册未完成,则为用户加载注册屏幕,否则转到默认 View Controller 。
我如何以及在哪里检查这种情况?
请帮忙。
提前致谢。
最佳答案
在您的应用委托(delegate)中
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
if(needToLogin) {
[self setViewController:[[[ViewController2 alloc] initWithNib:@"Login View"] autorelease]];
}
[window setRootViewController:viewController];
}
如果 needToLogin 返回 true,这会将您的 View Controller 切换到 view2 View Controller 。否则,它将转到 mainwindow.xib 中指定的默认 Controller
另一种方法(因为您可能无论如何都需要主视图 Controller )是在需要时显示登录 View Controller 。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
if(needToLogin) {
ViewController2 *loginVC = [[[ViewController2 alloc] initWithNib:@"LoginViewController"] autorelease];
[[self viewController] presentViewController:loginVC animated:NO];
}
[window setRootViewController:viewController];
}
请注意,您必须调用
[self dismissViewControllerAnimated:YES]
摆脱登录 View 。编辑: OP的回应:
我试过第一个,
if(loginflag){
[self setViewController:[[[SignUpViewController alloc] initWithNibName:@"SignUpViewController" bundle:nil] autorelease]];
}
[self.window setRootViewController:self.signUpView];
试试这个:
if(loginFlag) {
[self setViewController:[[[SignUpViewController alloc] initWithNibName:@"SignUpViewController" bundle:nil] autorelease]];
}
[[self window] setRootViewController:[self viewController]];
关于iphone - 如何在 iphone 应用程序启动时打开不同的 View Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8350178/