我正在开发一个以默认的 Master/Detail 应用程序 Storyboard启动的 IOS 应用程序。除了从 Detail View Controller 添加一个额外的 segue 到一个新的 UIViewcontroller 之外,我没有更改原始布局'代表我自己的类(class)。我希望导航栏在我添加的 View Controller 上是透明的,并且我在互联网上找到了很多关于如何实现这一点的示例。我遇到的问题是,在 ipad 上进行测试时,导航栏如预期的那样是透明的,但在 Iphone 上,无论我做什么,导航栏都保持不变。
我正在运行 Xcode 7 beta,所有内容均使用 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()
我已经以多种不同的方式尝试了这些线路......这是我尝试过的一些事情
- 改为在 viewWillAppear 中运行这些行。
- 对从 UINavigationBar.appearance() 返回的对象运行相同的基本代码
- 获取父 View Controller 并在其导航栏对象上运行相同的设置。
这些变化都没有对行为产生任何影响。似乎主视图 Controller 首先全屏显示的任何 IOS 设备都使导航栏保持正常。而显示详细信息 View 或两个 View 的任何设备首先显示导航栏透明。我在想我需要在这些场景中以不同的方式访问导航栏..但我没有想法。
谢谢!
最佳答案
放
let navigationController = splitViewController!.viewControllers[splitViewController!.viewControllers.count-1] as! UINavigationController
在您的代码之上,然后将 self.navigationController!
更改为 navigationController
,它将起作用。
关于Master/Detail Storyboard项目中的 IOS 导航栏在 ipad 上是透明的,但在 iphone 上不是,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31747405/