在用户使用我的应用程序之前,他必须登录。登录后,由于我需要从服务器获取信息来构建数据库,因此会构建数据库。
因此,我的根视图控制器是LoginViewController,在成功登录时以模态方式呈现实际应用程序(导航控制器堆栈)。
如果用户在应用程序启动时已经登录(我使用NSUserDefaults存储凭据),则LoginViewController应立即呈现应用程序。因此,我重写了该方法:
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
NSInteger userId = [[NSUserDefaults standardUserDefaults] integerForKey:@"selfUser"];
if (userId != 0) {
//[self performSelector:@selector(presentMainViewController) withObject:nil afterDelay:2];
[self presentMainViewController];
}
}
- (void)presentMainViewController {
mainViewController = [[MainViewController alloc] init];
mainViewController.managedObjectContext = managedObjectContext;
navigationController = [[UINavigationController alloc] initWithRootViewController:mainViewController];
navigationController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:navigationController animated:NO];
}
< p > [self presentMainViewController];
被执行了,但是控制器没有显示出来。如果我使用上面的那行代码就可以工作。
我应该把这段代码放在哪里才能使它起作用?
presentMainViewController
方法的主体内容吗?根据我的经验,-viewDidAppear和-viewWillAppear都可以用于呈现模态视图控制器。 - axiixcperformSelector:...
,它是否也能正常工作? - Morten Fast