0

UINavigationController提示されたビューがまだ背景に表示されるように、どのように提示できますか?

私の経験ではUINavigationController、ビューの下にあるものはすべてクリップされるため、設定UINavigationController.view.alphaにより、表示ビューのコンテンツではなく、固定色の背景が明らかになります。

これは変更できますか?

編集

ナビゲーション バーには興味がありませんが、ナビゲーション コントローラーが管理する完全なコンテンツには興味があります。

4

3 に答える 3

4

問題は UINavigationController ではなく、それをモーダルに提示することです。モーダルに提示された ViewController は決して透過的ではありません。

UINavigationControllers ビューをサブビューとしてメインの UIWindow に追加することで、モーダル プレゼンテーションを偽装できます。

この例は、XCode でテストするときに機能します。

   UIViewController *viewController = [[UIViewController alloc] init];
   viewController.view.backgroundColor = [[UIColor greenColor] colorWithAlphaComponent:0.35];

   UINavigationController *navCon = [[UINavigationController alloc] initWithRootViewController:viewController];

   [[[[UIApplication sharedApplication] delegate] window] addSubview:navCon.view];

もちろん、アニメーション化されたトランジションは自分で行う必要がありますが、アニメーション ブロックを使用すると簡単です。

于 2013-02-06T14:09:10.370 に答える
1

iOS7 のカスタム トランジションを使用してこれを実現する方法があります。

MyController * controller = [MyController new];
[controller setTransitioningDelegate:self.transitionController];
controller.modalPresentationStyle = UIModalPresentationCustom;
[self controller animated:YES completion:nil];

カスタム トランジションを作成するには、次の 2 つが必要です。

  • TransitionDelegate オブジェクト (実装 <UIViewControllerTransitionDelegate>)
  • 「AnimatedTransitioning」オブジェクト (実装<UIViewControllerAnimatedTransitioning>)

カスタム トランジションの詳細については、次のチュートリアルを参照してください: http://www.doubleencore.com/2013/09/ios-7-custom-transitions/

于 2014-01-17T09:56:04.743 に答える
0

UINavigationControllerこの動作が必要な場合は、ナビゲーションコントローラがコンテンツコントローラのビューをクリップすると言うように、を使用することはできません。必要な操作を行うには、代わりにナビゲーターバーをビューに追加し、ナビゲーションコントローラーのアクションをシミュレートする必要があります。コントローラに似た戻るボタンを作成するには、この記事を読んでください

于 2013-02-06T13:46:04.800 に答える