2016-08-02 7 views
1

私のアプリケーションでMVYSideMenuを使用しています。MVYSideMenuの "changeContentViewController"を使用して新しいコントローラを表示できますが、ここから新しいコントローラが表示されますので、私のルート(HomeViewController)これに関する多くの研究は解決策を見つけることができませんでした。MVYSideMenuがroot viewcontrollerにポップアップ

誰かが解決策を知っていれば私を助けてください。 ありがとうございます。

答えて

0

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からこのメソッドを呼び出します。

このメソッドを簡単に呼び出すことができますLocalNotificationsaddGesturesがすでにあるかもしれません。ジェスチャーを削除するには、コントローラに必要なときにremoveGesturesメソッドを呼び出します。しかし、ジェスチャーを取り除いた後にサイドメニューが必要なときにaddGesturesを忘れてはいけません。

希望、これはあなたが探しているものです。どんな心配も私に戻ってくる。 :)

+0

ご返信ありがとうございます。 しかし、私は子ビューコントローラからポップバックしたいです。 MVYSideDrawerと同じように動作する他のドロワーを知っているなら、私にお勧めします。ありがとう。 –

+0

更新された回答を確認してください。 –

+0

My SideメニューからChildViewControllerを表示しているときに、ポップオプション(戻るボタン)をルートビューコントローラに戻してMVYSideMenuを使用することができないように見えます。 –

関連する問題