【发布时间】:2011-05-12 17:32:00
【问题描述】:
在我的应用程序中,我有以下代码,当我的应用程序启动时,第一位运行,并在模式视图中显示登录屏幕。在此之前将我的 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 函数中,当我显示人员选择器时一切正常。
我在这里打破了一些基本的东西,或者任何人都可以发现我可能做错了什么?
【问题讨论】:
标签: iphone ios uinavigationcontroller presentmodalviewcontroller abpeoplepickerview