JASidePanel を使用して Facebook のようなサイド メニューを表示するアプリがあります。うまく機能しており、左右のパネルを表示できます。しかし、左パネルと右パネルを汎用にする必要があります。つまり、現在のセンター パネル ビュー コントローラーから新しいビュー コントローラー (詳細ビュー コントローラーなど) に切り替える場合でも、左パネルと右パネルを表示できる必要があります。
MainVC と DetailVC を使用したこのシナリオを検討してください。
シーン 1:
[left]-[center]-[right]
|
[MainVC]
シーン 2: 次のビュー コントローラーに移動するとき
[MainVC]
[left]-[center]-[right]
|
[DetailVC]
シーン 3: 別のビュー コントローラーに移動したとき
[MainVC]
[DetailVC]
[left]-[center]-[right]
|
[MoreDetailVC]
DetailVC がプッシュされ、中央パネルの「上に配置」されますが、MainVC はまだスタックのどこかに存在します。私はセグエとプッシュが必要です
- ストーリーボードを使用しています
- 他のビュー コントローラーでは、popToRootViewController を呼び出します。MainVC を rootViewController にする必要があります。
MainVC から DetailVC へのセグエを実行してみました
[self performSegueWithIdentifier...];
DetailVC で、センター パネルを次のように自分自身に設定します。
//in view will appear
sidePanelViewController.centerPanel = self;
これにより、アプリの黒い画面が生成されます。これは、センター パネルのセッター メソッドもビュー コントローラーを読み込みますが、ビューは既に読み込まれているため、セグエが 2 倍になるためだと思います。上記の行を削除すると、detailVC は正常に表示されますが、左右のパネルにアクセスできません。
this、 this、および thisを見てきましたが、回答はありません。JASidePanel ではこれができないのではないかと考えており、他のリソースの使用を検討しています。
編集: MainVC でセグエを実行する代わりに、中央のパネルを次のように直接設定してみました:
sidePanelViewController.centerPanel = [self.storyboard instantiateVCWithIdentifier:@"detailVC"];
そしてそれは機能し、セグエ経由ではなく DetailVC に移動するため、アニメーションはありませんが、左右のパネルにアクセスできます。問題は、popToRootViewController を使用して mainVC に戻れないことです。(ホームボタンのように多くの遷移がある可能性があるため、 popToRootViewController を使用してすぐにmainVCに戻る必要があります)