我正在使用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];
}
注意:CenterViewController
是Storyboard
ViewController
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];
}
答案 0 :(得分:0)
我认为您有以下选择:
UITableViewDelegate
中实施CenterViewController
,并将CenterViewController
实例指定为UITableView
中LeftViewController
的代表。LeftViewController
创建一个委托,这样您就可以将UITableViewDelegate
的逻辑保留在LeftViewController
中,并在{{1}中实现新的委托并将其指定为CenterViewController
的委托。LeftViewController
NSNotificationCenter
中的项目并添加LeftViewController
作为通知的观察员时,使用UITableView
发布通知。< / LI>
醇>
更新1
HI,在代码中我看到你正在分配一个新的rootViewController,可能用你自己的ViewControler替换MMDrawerController的实例,因此你松开了滑动手势。
也许您唯一需要的是将中央控制器分配给调用CenterViewController
的MMDrawerController
而不是
setCenterViewController:
使用
app.window.rootViewController = navcon;