我使用UIKit Dynamics Slide Out Menu在幻灯片菜单上关注了这个很棒的教程。代码稍作修改,以减少代码重复。我正在处理MenuComponent类中的触摸事件。现在,我正在尝试在选择项目时移动到另一个视图控制器。菜单是用代码创建的,所以我不能使用segue。
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
[[tableView cellForRowAtIndexPath:indexPath] setSelected:NO];
[self toggleMenu];
self.isMenuShown = NO;
if(indexPath.row == 0){
//move to the testViewController
}
如何删除当前视图并显示新视图?我的层次结构是导航控制器,然后是我的testViewController。
编辑:我确实找到了我尝试过的代码,但我的问题是当菜单出现时我试图呈现视图我收到错误:
testViewController *test = (testViewController*)[storyboard instantiateViewControllerWithIdentifier:@"testViewController"];
[self presentViewController:test animated:YES completion:nil];
Warning: Attempt to present <testViewController: 0x7c095470> on <MenuComponent: 0x7ae4ce50> whose view is not in the window hierarchy!
答案 0 :(得分:0)
我能够通过为MenuComponent创建委托来解决这个问题,然后像这样传递视图:
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
UIViewController * test = [storyboard instantiateViewControllerWithIdentifier:@"test"] ;
[delegate didCallViewController:test];