如何为MFSideMenu类中的某些视图控制器禁用平移模式?

han*_*Dev 5 iphone objective-c uiviewcontroller ios

我在我的项目中使用来自github链接的MFSideMenu .它正在工作,但是我想在某个viewcontroller中禁用它.

我在viewcontroller中添加了它,但它没有禁用panMode:

#import "MFSideMenuContainerViewController.h"

-(void) viewWillAppear:(BOOL)animated {

    MFSideMenuContainerViewController *sideMenu = [[MFSideMenuContainerViewController alloc] init];

    sideMenu.panMode = 0;

}
Run Code Online (Sandbox Code Playgroud)

我的计划是在viewDidDisappear方法中重新启用panmode.

MFSideMenuContainerViewController.m如果我添加self.panMode = 0; 到文件中的FYI - (void)setDefaultSettings {self.panMode = 0;}会禁用菜单平移,除非它为整个应用程序禁用它当然.

我一定不能正确引用MFSideMenuContainerViewController属性panmode.

在我的AppDelegate中:

.H

@property (nonatomic, strong) MFSideMenuContainerViewController *container;
Run Code Online (Sandbox Code Playgroud)

.M

  MFSideMenuContainerViewController *container = [MFSideMenuContainerViewController
                                                    containerWithCenterViewController:self.navController
                                                    leftMenuViewController:nil
                                                    rightMenuViewController:rightSideMenuController];

    self.window.rootViewController = container;
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助

小智 12

你可以用它viewWillAppear.

[self.menuContainerViewController setPanMode:MFSideMenuPanModeNone];
Run Code Online (Sandbox Code Playgroud)


Ino*_*oka 10

有四种不同的MFSideMenuPanModes.

您可以尝试使用以下语句.

在AppDelegate.h中

@property (strong, nonatomic) MFSideMenuContainerViewController *container;
Run Code Online (Sandbox Code Playgroud)

在AppDelegate.m中 - didFinishLaunchingWithOptions方法

 self.container = [MFSideMenuContainerViewController
                                                containerWithCenterViewController:[self navigationController]
                                                leftMenuViewController:leftMenuViewController
                                                rightMenuViewController:rightMenuViewController];
Run Code Online (Sandbox Code Playgroud)

在View Controller中 - viewWillAppear方法.

AppDelegate *delegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
delegate.container.panMode = MFSideMenuPanModeNone;
Run Code Online (Sandbox Code Playgroud)