MVYSideMenu弹出到根视图控制器

时间:2016-08-02 07:19:46

标签: ios objective-c iphone menu mvysidemenu

我在我的应用程序中使用MVYSideMenu,我可以使用" changeContentViewController"来呈现新的控制器。 MVYSideMenu,但它提出了新的控制器,所以从这里我想回到我的根(HomeViewController),所以我做了很多研究,但无法找到解决方案。

所以,如果有人知道解决方案,请帮助我。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

当你试图打开任何视图时,

MVYSideMenu正在制作rootViewController。如果您正在制作rootViewController,那么您将无法pop

因此,如果您想返回,那么您必须Push该视图而不是创建rootViewController。

我认为,现在您正在使用以下代码打开侧边菜单的任何控制器:

ChildViewController *contentVC = [[ChildViewController alloc] initWithNibName:@"ChildViewController" bundle:nil];
appDelegate.nav = [[UINavigationController alloc] initWithRootViewController:contentVC];
appDelegate.nav.navigationBarHidden=TRUE;
[[self sideMenuController] changeContentViewController:appDelegate.nav closeMenu:YES];

所以请使用以下代码而不是上面的代码。此处nav是UINavigationControllerAppDelegate的对象。

ChildViewController *contentVC = [[ChildViewController alloc] initWithNibName:@"ChildViewController" bundle:nil];
[appDelegate.nav pushViewController:contentVC animated:YES];
[[self sideMenuController] changeContentViewController:appDelegate.nav closeMenu:YES];

所以你可以从侧面菜单推送任何视图。而现在只是尝试弹出这个视图。我相信你可以在使用它之后弹出这个视图。

确保,如果你这样做,那么可能存在内存泄漏。因为viewControllers一直在添加到导航控制器。所以我的建议是,如果你能说服你的客户,不要这样做。 :)否则,你必须自己创建侧面菜单。

编辑: -

是的,我们可以为某些视图控制器启用/禁用侧面菜单。请将以下方法添加到 MVYSideMenuController.m 文件中。并从viewControllers的viewWillAppear调用此方法。

- (void)addGestures {

    if (!_panGesture) {
        _panGesture = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePanGesture:)];
        [_panGesture setDelegate:self];
     //   [self.view addGestureRecognizer:_panGesture];
    }

    if (!_tapGesture) {
        _tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(toggleMenu)];
        [_tapGesture setDelegate:self];
        [self.view addGestureRecognizer:_tapGesture];
    }
}

- (void)removeGestures{
    [self.view removeGestureRecognizer:_panGesture];
    _panGesture = nil;
}

您可以轻松调用此方法LocalNotifications。可能已经addGestures了。您可以在控制器中需要时调用removeGestures方法删除手势。但是在删除手势后需要侧边菜单时不要忘记addGestures

希望,这是你正在寻找的。任何关注都会回复给我。 :)