2013-05-21 6 views
5

Używam MFSideMenu z github link w moim projekcie. Działa, jednak chciałbym go wyłączyć w pewnym kontrolerze widoku.Jak wyłączyć tryb panoramy dla niektórych kontrolerów widoku w klasie MFSideMenu?

dodałem to w viewcontroller ale nie wyłączyć panMode:

#import "MFSideMenuContainerViewController.h" 

-(void) viewWillAppear:(BOOL)animated { 

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

    sideMenu.panMode = 0; 

} 

mój plan był następnie ponownie włączyć panmode w metodzie viewDidDisappear.

FYI w pliku MFSideMenuContainerViewController.m jeśli dodam self.panMode = 0; do - (void)setDefaultSettings {self.panMode = 0;} to powoduje wyłączenia patelnię menu oprócz tego, że wyłącza ją dla całej aplikacji oczywiście.

Nie mogę poprawnie odwoływać się do trybu paneli właściwości MFSideMenuContainerViewController.

w moim AppDelegate:

.h

@property (nonatomic, strong) MFSideMenuContainerViewController *container; 

.m

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

    self.window.rootViewController = container; 

dzięki za wszelką pomoc

+0

W pliku .m nie należy definiować nowej zmiennej kontenera. Zamiast tego należy użyć self.container i przypisać obiekt. następnie ustaw self.container na rootViewController. Sprawdź moją odpowiedź poniżej. – Inoka

Odpowiedz

10

Istnieją cztery różne MFSideMenuPanModes.

Możesz spróbować z następującą instrukcją.

W AppDelegate.h

@property (strong, nonatomic) MFSideMenuContainerViewController *container; 

W AppDelegate.m - metoda didFinishLaunchingWithOptions

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

w widoku Controller - metoda viewWillAppear.

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

Próbowałem tego. Jest to to samo, co "panMode = 0;" Działa, gdy zmienię go bezpośrednio w MFSideMenuContainerViewController.m, ale nie w innym kontrolerze widoku. dzięki za twój post. – hanumanDev

+1

Nawet jeśli jesteś w różnych kontrolerach widoku, czy nie możesz uzyskać odwołania do obiektu "MFSideMenuContainerView Control" od AppDelegate i przypisać ten panMode? – Inoka

+0

@hanumanDev Mam edytować odpowiedź. Sprawdź teraz. – Inoka

11

Możesz użyć tego w viewWillAppear.

Powiązane problemy