iphone - 如何在 iphone 应用程序启动时打开不同的 View Controller ?

标签 iphone objective-c ios uiviewcontroller

我有两个 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/

相关文章:

iphone - iOS : Is there any notification that Siri has appeared?

android - 同一产品线的多平台(不仅仅是跨平台)开发策略?

ios - 读取 plist 文件以填充表格时出错

iphone - Xcode如何决定先加载哪个xib?我该如何改变它?

objective-c - 使用Obj-C,Xcode和libxml2的简单libxml2 XML解析示例?

ios - indexpath 行未准备好 segue 以进行详细信息披露

objective-c - 非字母数字字符可以用作选择器吗?

ios - 包含 3 个组的合适 View

ios - 我怎样才能在 ios 上静音传入的文本

objective-c - 在标签栏应用程序中隐藏标签栏