在我的应用程序中,我有以下代码,当我的应用程序启动时,第一位运行,并在模式视图中显示登录屏幕。在此之前将我的 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 函数中,当我去显示人员选择器时一切正常。
我在这里打破了一些基本的东西,或者任何人都可以发现我可能做错了什么?