2012-04-21 12 views
1

iPhoneの最初のビューを読み込む前に、ユーザー名とパスワードをキャプチャする画面を追加する必要があります。アプリ全体が、この(遅い)追加を除いてコード化され、動作しています。これはXcodeの私の最初のアプリなので、システムにはあまり慣れていません。Xcode3の既存のViewControllerの前にログイン画面を追加する方法

私は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 

ですが、私は変更する必要は何かわからない - あるいは実際に変更する必要があります他に何?どんなアドバイスも感謝しています。

答えて

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]; 
} 
+0

このDanに感謝します。私はここでロジックを見ることができますが、空白の画面が表示されています。つまり、RootViewControllerもLoginViewControllerも表示されていません。既存のRootViewControllerの前にLoginViewControllerを取得するには、もっと多くのことが必要ですか? –

+0

私は、これが動作する古いプロジェクトをチェックしました。同じ考え方でviewDidAppearを試してみてください。 – danh

+0

OKダンは正しい方向に向かっているようですが、これをさらに追求してくれます! –

関連する問題