我正在使用自定义控件,SWRevealController用于像facebook这样的左侧滑动菜单。我必须要求用户登录,如果他没有登录并选择需要登录的选项。
我在点击时显示一个身份验证视图控制器,并且用户登录。成功后,我应该根据登录前选择的行推送视图控制器。
我正在使用:
[self tableView:self.menuTable didSelectRowAtIndexPath:self.indexPath];
但是它没有推动该行上的视图控制器。
我已经实现了委托方法来获取用户是否已成功登录的响应,并且我获得了成功。
这是我的tableView
委托方法:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
SWRevealViewController *revealController = [self revealViewController];
UIViewController *frontViewController = revealController.frontViewController;
UINavigationController *frontNavigationController =nil;
self.indexPath = indexPath;
if ( [frontViewController isKindOfClass:[UINavigationController class]] )
frontNavigationController = (id)frontViewController;
NSInteger row = indexPath.row;
if(self.currentUser == nil){
SignInViewController *frontViewController = [[SignInViewController alloc] init];
frontViewController.delegate = self;
frontViewController.title = @"Cashmails";
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:frontViewController];
self.navController = navigationController;
[revealController pushFrontViewController:navigationController animated:YES];
}else{
CashmailViewController *frontViewController = [[CashmailViewController alloc] init];
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:frontViewController];
[revealController pushFrontViewController:navigationController animated:YES];
}
}
以下是我在登录成功时使用的委托方法:
-(void) userSignInSuccessfully{
[self tableView:self.menuTable didSelectRowAtIndexPath:self.indexPath];
}
我也试过这个:
-(void) userSignInSuccessfully{
SWRevealViewController *revealController = [self revealViewController];
[revealController pushFrontViewController:self.navController animated:NO];
}
如果我使用错误的方法,我怎么能做到这一点。