【问题标题】:Exit From MMDrawerController Left View Controler从 MM 抽屉控制器退出左视图控制器
【发布时间】:2016-08-27 16:47:51
【问题描述】:

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

LeftViewController 在我单击栏按钮时从左侧滑出。

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

在我的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];

}

注意:CenterViewControllerStoryboardViewController ID

通过使用上面的代码,ViewController 出现在LeftViewController 之上,但我想关闭LeftViewController 并重定向到ViewController

我使用了下面的代码,虽然它可以工作但是左右滑动在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];
}

【问题讨论】:

    标签: ios objective-c iphone uitableview


    【解决方案1】:

    我认为您有以下选择:

    1. CenterViewController 中实现UITableViewDelegate,并将CenterViewController 实例分配为LeftViewControllerUITableView 的委托。
    2. LeftViewController 创建一个委托,这样您就可以将UITableViewDelegate 的逻辑保留在LeftViewController 中,并在CenterViewController 中实现新委托并将其分配为LeftViewController 的委托.
    3. 当用户选择LeftViewControllerUITableView 中的项目时,使用NSNotificationCenter 发布通知,并添加CenterViewController 作为通知的观察者。

    更新 1

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

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

    而不是

    app.window.rootViewController = navcon;
    

    使用

    [drawerControllerInstance setCenterViewController:navcon];
    

    【讨论】:

    • 我在我的问题中尝试了 didSelectRowAtIndexPath 作为编辑,虽然它可以工作,但是在 ViewController 上左右滑动不起作用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-22
    • 1970-01-01
    • 2012-03-11
    • 1970-01-01
    相关资源
    最近更新 更多