4

デフォルトのマスター/詳細アプリケーション ストーリーボードで開始された IOS アプリに取り組んでいます。詳細ビュー コントローラーから新しい UIViewcontroller にセグエを追加する以外は、元のレイアウトを変更していません。自分のクラスで。追加したView Controllerでナビゲーションバーを透明にしたいのですが、インターネット上でそれを実現する方法の例がたくさん見つかりました。私が抱えている問題は、iPadでテストすると、ナビゲーションバーが期待どおりに透明になることですが、iPhoneでは何をしてもナビゲーションバーは同じままです。

私は Xcode 7 ベータ版を実行しており、すべてが Swift でコーディングされています。

View Controller の viewDidLoad 関数には、次のコード行があります。

self.navigationController!.navigationBar.translucent = true;
self.navigationController!.navigationBar.shadowImage = UIImage()
self.navigationController!.navigationBar.setBackgroundImage(UIImage(), forBarMetrics: UIBarMetrics.Default)
self.navigationController.navigationBar.backgroundColor = UIColor.ClearColor()

これらの行をさまざまな方法で試しました...ここに私が試したもののいくつかがあります

  1. 代わりにこれらの行を viewWillAppear で実行します。
  2. UINavigationBar.appearance() から返されたオブジェクトで同じ基本コードを実行する
  3. 親View Controllerを取得し、そのnavigationbarオブジェクトで同じ設定を実行します。

これらの変更のいずれも、動作に影響を与えていません。マスター ビュー コントローラーが最初にフルスクリーンで表示されるすべての IOS デバイスは、ナビゲーション バーを通常のままにするように見えますが、詳細ビューまたは両方のビューを最初に表示するすべてのデバイスは、ナビゲーション バーを透明にします。これらのシナリオでは、別の方法でナビゲーション バーにアクセスする必要があると考えています..しかし、アイデアがありません。

ありがとう!

4

1 に答える 1

-1

置く

let navigationController = splitViewController!.viewControllers[splitViewController!.viewControllers.count-1] as! UINavigationController

コードの上でself.navigationController!withを変更するnavigationControllerと機能します。

于 2016-03-31T11:05:09.030 に答える