选择UITableView行并根据行推送ViewController

时间:2014-07-16 06:10:57

标签: ios uitableview swrevealviewcontroller

我正在使用自定义控件,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];

}

如果我使用错误的方法,我怎么能做到这一点。

0 个答案:

没有答案