私のアプリケーションには次のコードがあります。アプリケーションの起動時に最初のビットが実行され、モーダル ビューでログイン画面が表示されます。その前に rootController をウィンドウに追加しました。
モーダル ビューでは、ユーザーはログオンして利用規約を表示できます。ユーザーが同意すると、loadMainApp 関数が呼び出されます。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
rootController.delegate = self;
[window addSubview:rootController.view];
LoginViewController *_loginViewController = [[LoginViewController alloc] initWithNibName:@"LoginView" bundle:[NSBundle mainBundle]];
self.loginViewController = _loginViewController;
[_loginViewController release];
UINavigationController *navi = [[[UINavigationController alloc]initWithRootViewController:loginViewController]autorelease];
navi.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[loginViewController release];
[rootController presentModalViewController:navi animated:YES];
[self.window makeKeyAndVisible];
return YES;
}
この次のビットは、ユーザーが利用規約に同意したときに呼び出されます。
-(void)loadMainApp:(UIView *)fromView{
[fromView removeFromSuperview];
[window addSubview:rootController.view];
rootController.selectedIndex = 2;
rootController.delegate = self;
}
ここから、モーダル ビューであるピープル ピッカーを使用できるようにしたいので、次のコードで試します。
ABPeoplePickerNavigationController *picker =
[[ABPeoplePickerNavigationController alloc]init];
picker.peoplePickerDelegate = self;
[rootController presentModalViewController:picker animated:YES];
[picker release];
rootController からモーダル ビューを表示しようとすると、何も表示されません。
これは、applicationDidFinishLaunching の次のコードが実行された後に発生するようです。
LoginViewController *_loginViewController = [[LoginViewController alloc] initWithNibName:@"LoginView" bundle:[NSBundle mainBundle]];
self.loginViewController = _loginViewController;
[_loginViewController release];
UINavigationController *navi = [[[UINavigationController alloc]initWithRootViewController:loginViewController]autorelease];
navi.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[loginViewController release];
[rootController presentModalViewController:navi animated:YES];
[self.window makeKeyAndVisible];
return YES;
ログイン画面をまったく表示せず、代わりに rootController を追加するだけの場合
rootController.delegate = self;
[window addSubview:rootController.view];
applicationDidFinishLaunching 関数では、ピープル ピッカーを表示すると、すべて正常に動作します。
ここで私が壊している基本的なものはありますか、それとも私が間違っている可能性があることを誰かが見つけることができますか?