MVYSideMenuは、これからビューを開くときにrootViewController
となります。 rootViewController
を作成している場合は、pop
からそれを行うことはできません。
戻ってみたい場合は、rootViewControllerを作成する代わりにPush
を表示する必要があります。
私は今あなたが開いているため、次のコードにサイドメニューのための任意のコントローラを使用している、と思う:
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];
だからではなく、上記のコードを次のコードを使用してください。ここで、navは、にUINavigationController
のオブジェクトです。
ChildViewController *contentVC = [[ChildViewController alloc] initWithNibName:@"ChildViewController" bundle:nil];
[appDelegate.nav pushViewController:contentVC animated:YES];
[[self sideMenuController] changeContentViewController:appDelegate.nav closeMenu:YES];
だから、サイドメニューから任意のビューを押すことができます。そして今、このビューをポップアップしようとします。私はあなたがこれを使用した後にこのビューをポップできることを確信しています。
これを行うと、メモリリークが発生する可能性があります。常にviewControllerがナビゲーションコントローラに追加されているためです。ですから私の提案は、あなたのクライアントを納得させることができれば、これをしないことです。 :)それ以外の場合は、あなた自身のサイドメニューを作る必要があります。
EDIT: -
はい、我々は可能ないくつかのビューコントローラの有効/無効サイドメニューを有効にすることができます。 MVYSideMenuController.mファイルに以下のメソッドを追加してください。そして、あなたのviewControllerのviewWillAppear
からこのメソッドを呼び出します。
このメソッドを簡単に呼び出すことができますLocalNotifications
。 addGestures
がすでにあるかもしれません。ジェスチャーを削除するには、コントローラに必要なときにremoveGestures
メソッドを呼び出します。しかし、ジェスチャーを取り除いた後にサイドメニューが必要なときにaddGestures
を忘れてはいけません。
希望、これはあなたが探しているものです。どんな心配も私に戻ってくる。 :)
ご返信ありがとうございます。 しかし、私は子ビューコントローラからポップバックしたいです。 MVYSideDrawerと同じように動作する他のドロワーを知っているなら、私にお勧めします。ありがとう。 –
更新された回答を確認してください。 –
My SideメニューからChildViewControllerを表示しているときに、ポップオプション(戻るボタン)をルートビューコントローラに戻してMVYSideMenuを使用することができないように見えます。 –