我正在开发一个 IOS 应用程序,该应用程序以默认的 Master/Detail 应用程序故事板启动。除了从 Detail View 控制器添加一个额外的 segue 到我代表的新 UIViewcontroller 之外,我没有更改原始布局和我自己的班级。我希望导航栏在我添加的视图控制器上是透明的,并且我在互联网上找到了很多关于如何实现这一点的示例。我遇到的问题是,在 ipad 上进行测试时,导航栏按预期是透明的,但无论我做什么,导航栏都保持不变。
我正在运行 Xcode 7 测试版,一切都用 Swift 编码。
在我的视图控制器的 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()
我已经以多种不同的方式尝试了这些线路......这是我尝试过的一些事情
- 而是在 viewWillAppear 中运行这些行。
- 在 UINavigationBar.appearance() 返回的对象上运行相同的基本代码
- 获取父视图控制器并在其导航栏对象上运行相同的设置。
这些变化都没有对行为产生任何影响。似乎主视图控制器首先全屏显示的任何 IOS 设备都使导航栏正常。而任何显示详细信息视图或两个视图的设备首先显示导航栏透明。我想我需要在这些场景中以不同的方式访问导航栏..但我没有想法。
谢谢!