Iphone 如何在Xcode3中现有的ViewController之前添加登录屏幕

Iphone 如何在Xcode3中现有的ViewController之前添加登录屏幕,iphone,objective-c,xcode,login,uiviewcontroller,Iphone,Objective C,Xcode,Login,Uiviewcontroller,在iPhone上加载应用程序的第一个视图之前,我需要添加一个屏幕来捕获用户名和密码。除此之外,整个应用程序都已编码并正常运行。这是我在Xcode中的第一个应用程序,所以我对这个系统一点也不熟悉 我设置了LoginViewController,但不知道如何将其添加到应用程序的前端,以便它先加载,然后再加载我的RootViewController(在加载下一个视图之前,我需要登录详细信息) 我的appdelegate的标题当前为 #import <UIKit/UIKit.h> @cla

在iPhone上加载应用程序的第一个视图之前,我需要添加一个屏幕来捕获用户名和密码。除此之外,整个应用程序都已编码并正常运行。这是我在Xcode中的第一个应用程序,所以我对这个系统一点也不熟悉

我设置了LoginViewController,但不知道如何将其添加到应用程序的前端,以便它先加载,然后再加载我的RootViewController(在加载下一个视图之前,我需要登录详细信息)

我的appdelegate的标题当前为

#import <UIKit/UIKit.h>

@class RootViewController;
@interface Online_HW_DiaryAppDelegate : NSObject <UIApplicationDelegate> {

UIWindow *window;
RootViewController *viewController;

UINavigationController *navigationController;

}

@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet UINavigationController *navigationController;
@property (nonatomic, retain) IBOutlet RootViewController *viewController;

@end  
#导入
@类RootViewController;
@联机接口\u硬件\u日记应用程序委托:NSObject{
UIWindow*窗口;
RootViewController*viewController;
UINavigationController*导航控制器;
}
@属性(非原子,保留)IBUIWindow*window;
@属性(非原子,保留)IBuinavigationController*导航控制器;
@属性(非原子,保留)IBOutlet RootViewController*viewController;
@结束

但我不确定我需要修改什么,或者确实需要修改什么?非常感谢您的建议。

我认为最快的方法是:在RootViewController的viewdide中,检测所需的登录条件并以modally方式呈现新的LoginVC

// RootViewController.m
- (void)viewDidAppear:(BOOL)animated {

    [super viewDidAppear:animated];

    if (/* user must login */) {
        LoginVC *newVC = [[LoginVC alloc] initWithNibName:.....];
        [self presentModalViewController:newVC animated:YES];
    } else {
        // your old viewwillappear logic
    }
}
LoginVC在确定用户已成功登录后,可以自行关闭

// LoginVC.m
- (void)loginFinished {

    // after some asynch call that validated the user credentials
    [self dismissModalViewControllerAnimated:YES];
}

谢谢你,丹。我可以看到这里的逻辑,但我只是得到一个空白屏幕,即RootViewController或LoginViewController都没有显示。我还需要做更多的工作才能在现有的RootViewController之前获取LoginViewController?我刚刚检查了一个老项目,它可以在那里工作。试着用同样的想法看一看。好的,谢谢Dan,我会继续做下去,因为它肯定朝着正确的方向前进!是的,新的观点正在出现,但很精彩。我需要做一些工作,让它检测用户是否已经输入了他们的详细信息,并将登录凭据从新的LoginViewController传递到现有的RootViewController。我将着手做这件事。非常感谢你的帮助,我可能稍后再来!很高兴听到这个消息。请随时询问后续问题。