只有后退按钮和透明背景的导航

Navigation with only Back Button and transparent background

我曾尝试实现嵌入在我的视图控制器中的导航控制器。它按预期工作。

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

有什么方法可以克服这种情况。

这看起来很简单,通过我的应用程序中也使用了以下代码:-

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

不知道有没有别的选择。但是以前我也有过和你一样的情况。

我已经使用 UIView 创建了自定义 .XIB。并将其添加到导航栏中。

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

这是实现它的步骤。

1) 使用 .h 文件,.m 文件和 UIView 的 Xib 宽度 46高度 44

的大小

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

3) 将 outlet 给 .h 文件中的后退按钮。

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

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

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

#define macro_name (Define in constantfile as macro if you don't want to write whole code again and again)

NavigationHeaderview *customView = [NavigationHeaderview CustomNavigation:self.navigationController.navigationBar.frame.origin.x y:self.navigationController.navigationBar.frame.origin.y width:self.navigationController.navigationBar.frame.size.width height:self.navigationController.navigationBar.frame.size.height];
customView.delegate=self;
[self.navigationController.view addSubview:customView];

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

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

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