从MMDrawerController退出左视图控制器

时间:2016-08-27 16:47:51

标签: ios objective-c iphone uitableview

我正在使用MMDrawerController。我在TableView中使用LeftViewController在自定义单元格中显示我的数据。

单击栏按钮时,

LeftViewController从左侧滑出。

点击我ViewControler的自定义单元格后,我想从LeftViewController重定向到其他TableView

在我LeftViewController我正在使用以下代码

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    [self performSegueWithIdentifier:@"CenterViewController" sender:self];
}

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    NSIndexPath *path = [self.tableView indexPathForSelectedRow];
    ViewController *VC = (ViewController *)[segue destinationViewController];

}

注意:CenterViewControllerStoryboard

ViewController ID

使用上述代码,ViewController会显示LeftViewController,但我想关闭LeftViewController并重定向到ViewController

My Storyboard

我使用了下面的代码,虽然它有效,但是左右滑动不适用于ViewController

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    ViewController *ggg = [self.storyboard instantiateViewControllerWithIdentifier:@"ViewController"];
        UINavigationController *navcon = [[UINavigationController alloc] initWithRootViewController:ggg];
    AppDelegate *app =[[UIApplication sharedApplication] delegate];
    app.window.rootViewController = navcon;
    [app.drawerController toggleDrawerSide:MMDrawerSideLeft animated:YES completion:nil];
}

1 个答案:

答案 0 :(得分:0)

我认为您有以下选择:

  1. UITableViewDelegate中实施CenterViewController,并将CenterViewController实例指定为UITableViewLeftViewController的代表。
  2. LeftViewController创建一个委托,这样您就可以将UITableViewDelegate的逻辑保留在LeftViewController中,并在{{1}中实现新的委托并将其指定为CenterViewController的委托。
  3. 当用户选择LeftViewController NSNotificationCenter中的项目并添加LeftViewController作为通知的观察员时,使用UITableView发布通知。< / LI>

    更新1

    HI,在代码中我看到你正在分配一个新的rootViewController,可能用你自己的ViewControler替换MMDrawerController的实例,因此你松开了滑动手势。

    也许您唯一需要的是将中央控制器分配给调用CenterViewController的MMDrawerController

    而不是

    setCenterViewController:

    使用

    app.window.rootViewController = navcon;