0

PKRevealControllerアプリケーションにサイド メニュー機能を提供するを使用しています。

サイド メニューに UIbuttons があり、ナビゲーション スタックにプッシュされるビューをトリガーします。ただし、プッシュされる各ビューには、ナビゲーション ビュー コントローラーにつながる戻るボタンがあります。

スタックにプッシュされた各ビューがナビゲーション スタックのルートになることを確認する正しい方法は何でしょうか? 明らかに、スタックする必要があるコントローラーを表示しないことを除いて。

4

2 に答える 2

0

ビュー コントローラーをプッシュしない場合は、現在のビュー コントローラーのビューを含むメイン ビューを使用することをお勧めします。別のアプリ セクションに変更するたびに、そのビューを削除し、新しいビュー コントローラーのビューを挿入します。

ただし、ナビゲーション スタックが必要な場合は、以前のビュー コントローラーをナビゲーション スタックから削除して、新しいものを追加できます。同時に 1 つのビュー コントローラーしか持たず、タブ バー コントローラーを使用していると仮定します。

UIViewController * root = nil;
UINavigationController *rootNavController = [[[UINavigationController alloc]initWithRootViewController:root] autorelease];
[root release];
NSMutableArray * viewControllersArray = [NSMutableArray arrayWithArray:self.tabBar.viewControllers];
[viewControllersArray removeObject:[viewControllersArray lastObject]];
[viewControllersArray addObject:rootNavController];
[self.tabBar setViewControllers:viewControllersArray animated:NO];

複数ある場合は、常に最後のものを削除するのではなく、最初のものを削除する必要があります。したがって、lastObject を objectAtIndex:0 に、addObject を insertObject:atIndex:0 に置き換える必要があります。

それが役に立てば幸い

于 2013-05-10T12:33:18.620 に答える