仅使用后退按钮和透明背景导航

时间:2016-02-11 06:03:30

标签: ios swift uinavigationcontroller ios-autolayout

我曾尝试实现嵌入View Controller的导航控制器。它按预期工作。

但我的要求略有不同,只需要一个后退按钮,并且在所有屏幕中已经有一个带有徽标图像背景的顶部横幅。因此,如果我尝试实现后退按钮,它会占用导航栏的空间,其中包含徽标/顶部横幅。

有没有办法克服这种情况。

2 个答案:

答案 0 :(得分:7)

这似乎很简单,我的应用程序中使用了以下代码: -

self.navigationController?.navigationBar.setBackgroundImage(UIImage(), forBarMetrics: .Default)
self.navigationController?.navigationBar.shadowImage = UIImage()
self.navigationController?.navigationBar.translucent = true
self.navigationController?.view.backgroundColor = UIColor.clearColor()

修改: -

删除后退按钮文字: -

navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: .Plain, target: nil, action: nil)

Swift 3.0

self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
self.navigationController?.navigationBar.shadowImage = UIImage()
self.navigationController?.navigationBar.isTranslucent = true
self.navigationController?.view.backgroundColor = UIColor.clear

答案 1 :(得分:0)

我不知道是否还有其他选择。但在过去,我和你一样。

我用UIView创建了自定义.XIB。并将子视图添加为导航栏。

所以,根据我的说法,最好的选择是使用UINavigation栏的高度创建自定义.XIB。并添加为子视图。

以下是您如何实现目标的步骤。

1)获取 .m 文件, .m 文件和UIView的 Xib ,其中宽度为46 身高44

2)根据您的设计设置约束和布局。

3)在.h文件中为“后退”按钮添加插座。

4)在customview.h文件中创建一个委托。在.m文件中设置方法。

5)然后在viewcontroller.h文件中导入customview.h文件。同样不要忘记在viewcontrollers接口中定义委托。 <>

6)现在在Viewdidload方法中添加customheaderview作为子视图。

O(n)

7)使用headerview的委托方法在所有视图控制器中访问它。

现在,您可以像在UIView中一样在导航栏中执行任何操作。

注意: - 我知道这是一个繁琐的过程。但是当你在导航栏中需要3或4个按钮并在其上设置动作时,它是值得的。或者需要导航栏中整个项目的相同设计布局。