2016-08-02 11 views
1

Ich benutze MVYSideMenu in meiner Anwendung und ich kann neue Controller mit "changeContentViewController" von MVYSideMenu präsentieren, aber es stellt neue Controller so von hier möchte ich zurück zu meinem Stamm (HomeViewController) so getan habe ich getan Viel Forschung dazu aber konnte keine Lösung finden.MVYSideMenu pop zum root viewcontroller

Also wenn jemand die Lösung kennt, bitte helfen Sie mir. Vielen Dank im Voraus.

Antwort

0

MVYSideMenu macht rootViewController, wenn Sie versuchen, eine Ansicht von diesem zu öffnen. Wenn Sie rootViewController machen, dann können Sie pop davon nicht erreichen.

Also, wenn Sie zurückgehen möchten, dann müssen Sie Push diese Ansicht statt rootViewController machen.

Ich denke, Right Now Sie öffnen jeden Controller für Seite im Menü folgenden Code verwenden:

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]; 

So verwenden Sie bitte folgenden Code statt obigen Code. Hier ist Nav Objekt UINavigationController in AppDelegate.

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

So können Sie jede Ansicht aus dem Seitenmenü schieben. Und jetzt versuche einfach diese Ansicht zu öffnen. Ich bin mir sicher, dass Sie diese Ansicht nach der Verwendung öffnen können.

Stellen Sie sicher, dass, wenn Sie dies tun, dann möglicherweise Speicherverlust vorhanden ist. Denn alle Zeiten, die ViewControllers zum Navigationscontroller hinzufügen. Also mein Vorschlag ist, tu dies nicht, wenn du deinen Klienten überzeugen kannst. :) Ansonsten musst du dein eigenes Side-Menü erstellen.

EDIT: -

Ja, wir können in der Lage für einige View-Controller deaktivieren Seitenmenü aktivieren /. Fügen Sie folgende Methoden in MVYSideMenuController.m Datei hinzu. Und rufen Sie diese Methode von viewWillAppear Ihrer ViewControllers.

- (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; 
} 

Sie können diese Methoden aufrufen LocalNotifications. Kann schon addGestures sein. Sie können Gesten entfernen, indem Sie die Methode removeGestures aufrufen, wenn Sie in Ihrem Controller benötigt werden. Aber vergessen Sie nicht zu addGestures, wenn Sie nach dem Entfernen Gesten Side-Menü benötigt.

Hoffe, das ist, was Sie suchen. Jede Sorge komme zu mir zurück. :)

+0

Vielen Dank für Ihre Antwort. Aber ich möchte popback aus dem Kind View-Controller. Wenn Sie also eine andere Schublade kennen, die genauso funktioniert wie MVYSideDrawer, schlagen Sie mir bitte vor. Vielen Dank. –

+0

Überprüfen Sie einfach meine aktualisierte Antwort. –

+0

Nur weil Wenn ich einen ChildViewController aus dem My Side-Menü zeige, möchte ich eine Pop-Option (Zurück-Taste), um zum Root-View-Controller zurückzukehren und es sieht so aus, als ob MVYSideMenu nicht möglich ist. –

Verwandte Themen