2013-05-21 24 views
5

我在我的項目中使用github link的MFSideMenu。它工作,但是我想在某個視圖控制器中禁用它。如何在MFSideMenu類中爲某些視圖控制器禁用平移模式?

我加入這個在視圖 - 控制,但它不會禁用panMode:

#import "MFSideMenuContainerViewController.h" 

-(void) viewWillAppear:(BOOL)animated { 

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

    sideMenu.panMode = 0; 

} 

我的計劃是,然後再重新啓用在viewDidDisappear方法panmode。

如果我在MFSideMenuContainerViewController.m文件中添加self.panMode = 0; - (void)setDefaultSettings {self.panMode = 0;},它會禁用菜單功能,除非它禁用了整個應用程序。

我不能正確引用MFSideMenuContainerViewController屬性panmode。

在我的AppDelegate:

.H

@property (nonatomic, strong) MFSideMenuContainerViewController *container; 

.M

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

    self.window.rootViewController = container; 

感謝您的幫助

+0

在.m文件中,您不應該定義新的容器變量。而不是使用self.container並分配對象。之後,將self.container設置爲rootViewController。在下面檢查我的答案。 – Inoka

回答

10

有四種不同的MFSideMenuPanModes。

您可以嘗試以下語句。

在AppDelegate.h

@property (strong, nonatomic) MFSideMenuContainerViewController *container; 

在AppDelegate.m - didFinishLaunchingWithOptions方法

self.container = [MFSideMenuContainerViewController 
               containerWithCenterViewController:[self navigationController] 
               leftMenuViewController:leftMenuViewController 
               rightMenuViewController:rightMenuViewController]; 

在您的視圖控制器 - viewWillAppear中的方法。

AppDelegate *delegate = (AppDelegate *)[UIApplication sharedApplication].delegate; 
delegate.container.panMode = MFSideMenuPanModeNone; 
+0

我試過了。這與「panMode = 0;」是一樣的它在我直接在MFSideMenuContainerViewController.m中更改它,但不在另一個視圖控制器中時有效。感謝您的帖子,但。 – hanumanDev

+1

即使您處於不同的視圖控制器中,您是否無法從AppDelegate獲得對「MFSideMenuContainerViewController」對象的引用並分配此panMode? – Inoka

+0

@hanumanDev我已編輯答案,現在檢查。 – Inoka

11

您可以在viewWillAppear中使用此功能。

[self.menuContainerViewController setPanMode:MFSideMenuPanModeNone]; 
相關問題