我正在尝试以编程方式从启动画面(用于将用户登录到Facebook)转换为标签栏视图。我已经从splashViewController到tabBarController创建了一个带有“splashToTabBar”的模态segue,并调用了这个调用:
[self performSegueWithIdentifier:@"splashToTabBar" sender:self];
一旦用户通过Facebook验证(其中self是splashViewController)。调用prepareForSegue,但不会发生segue。是否可以从启动画面切换到标签栏控制器?我需要调用另一种方法吗?
更新:
无法解除模态视图控制器的代码。登录后,如果成功,我呼叫显示登录:
- (IBAction)login:(id)sender {
// Check and retrieve authorization information
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if ([defaults objectForKey:@"FBAccessTokenKey"]
&& [defaults objectForKey:@"FBExpirationDateKey"]) {
facebook.accessToken = [defaults objectForKey:@"FBAccessTokenKey"];
facebook.expirationDate = [defaults objectForKey:@"FBExpirationDateKey"];
NSLog(@"Retrieved authorization info");
}
if (![facebook isSessionValid]) {
NSLog(@"Not logged In");
permissions = [[NSArray alloc] initWithObjects:
@"publish_actions",
@"offline_access",
nil];
[facebook authorize:nil];
} else {
[self appReturnCheck];
}
和appReturnCheck调用dismissModalViewControllerAnimated - (无效)appReturnCheck {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if ([defaults objectForKey:@"FBID"] != nil && [defaults objectForKey:@"AppID"] != nil) {
[self dismissModalViewControllerAnimated:YES];
}
}
但是,在UI事件发生之前(即用户单击按钮),不会执行此代码。有什么方法可以通过编程方式解除模态视图控制器吗?