В моем приложении у меня есть следующий код, первый бит запускается при запуске моего приложения, и он представляет экран входа в систему в модальном виде.Мой 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, то все работает нормально, когда я показываю средство выбора людей.
Isесть что-то фундаментальное, что я здесь нарушаю, или кто-нибудь может определить, что я делаю не так?