1

在 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  

但我不确定我需要修改什么 - 或者确实还需要修改什么?任何建议都将不胜感激。

4

1 回答 1

3

我认为最快的路径是:在 RootViewController 的 viewDidAppear 中,检测登录所需条件并以模态方式呈现新的 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];
}
于 2012-04-21T15:57:08.340 回答