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. :)
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. –
Überprüfen Sie einfach meine aktualisierte Antwort. –
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. –