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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了仅使用后退按钮和透明背景导航相关的知识,希望对你有一定的参考价值。

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

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

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

答案

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

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)获取大小为宽度46和高度44的.h文件,.m文件和UIView的Xib

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

3)在.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个按钮并在其上设置动作时,它是值得的。或者需要在导航栏中为整个项目设计相同的布局..

以上是关于仅使用后退按钮和透明背景导航的主要内容,如果未能解决你的问题,请参考以下文章

导航栏后退按钮箭头字体 Swift

使用导航控制器按下后退按钮后如何防止前一个片段显示?

使用导航控制器按下后退按钮后,如何防止先前的片段出现?

导航抽屉,处理后退按钮以转到以前的片段?

从android中的片段管理工具栏的导航和后退按钮

Android导航组件后退按钮不起作用