如何在没有导航栏的情况下拥有后退导航栏
how to have the back navigation bar without the navigatin bar
我有一个主页,其中有一个可以转到另一个页面的按钮。
我想在进入第二页时,在导航栏的左上角有一个后退按钮。
我在主视图控制器中添加了一个导航控制器,然后在我的第二个视图控制器(第二页)中添加了一个 push segue,因此创建了一个自动后退按钮。
我想要的是我不希望导航栏位于主视图控制器中,我也不希望它位于第二个视图控制器中,我只想将后退按钮放在第二个视图控制器。
我想了想,然后想到了:
self.navigationController?.setNavigationBarHidden(true, animated: false)
在主视图控制器中,这实际上隐藏了导航,但这使得第二个视图 ctonroller 失去了它的后退按钮。
你有办法解决我的问题吗?
这是主视图控制器(它有导航栏,但我不想有它)
这是第二个视图控制器,它有后退按钮,
如果我离开 navigatino 栏我没问题,如果它是透明的,有什么想法吗? (透明,我的意思是我可以在它下面看到我的图像)
更新 1
在第一条评论给了我提示后,我尝试这样应用它:
class CustomNavigationBar: UINavigationBar {
override func drawRect(rect: CGRect) {
super.drawRect(rect)
}
}
并且我将 UINavigationControlelr 中导航栏的 class 设置为我的自定义导航栏。
在我的 main view controlr 中添加:
self.navigationController?.navigationBar.translucent = true;
self.navigationController?.navigationBar.backgroundColor = UIColor.clearColor()
但结果是我的主视图控制器仍然有一个导航栏位置(尽管它是空的)。我不能把这个地方设为透明以便看到下面的图像吗?
将其添加到主视图控制器
override func viewDidLoad() {
super.viewDidLoad()
self.navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: UIBarButtonItemStyle.Plain, target: nil, action: nil)
self.navigationController?.navigationBar.setBackgroundImage(UIImage(), forBarMetrics: UIBarMetrics.Default)
self.navigationController?.navigationBar.shadowImage = UIImage()
}
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
self.navigationController?.setNavigationBarHidden(true, animated: true)
}
override func viewWillDisappear(animated: Bool) {
super.viewWillDisappear(animated)
self.navigationController?.setNavigationBarHidden(false, animated: true)
}
我有一个主页,其中有一个可以转到另一个页面的按钮。
我想在进入第二页时,在导航栏的左上角有一个后退按钮。
我在主视图控制器中添加了一个导航控制器,然后在我的第二个视图控制器(第二页)中添加了一个 push segue,因此创建了一个自动后退按钮。
我想要的是我不希望导航栏位于主视图控制器中,我也不希望它位于第二个视图控制器中,我只想将后退按钮放在第二个视图控制器。
我想了想,然后想到了:
self.navigationController?.setNavigationBarHidden(true, animated: false)
在主视图控制器中,这实际上隐藏了导航,但这使得第二个视图 ctonroller 失去了它的后退按钮。
你有办法解决我的问题吗?
这是主视图控制器(它有导航栏,但我不想有它)
这是第二个视图控制器,它有后退按钮,
如果我离开 navigatino 栏我没问题,如果它是透明的,有什么想法吗? (透明,我的意思是我可以在它下面看到我的图像)
更新 1
在第一条评论给了我提示后,我尝试这样应用它:
class CustomNavigationBar: UINavigationBar {
override func drawRect(rect: CGRect) {
super.drawRect(rect)
}
}
并且我将 UINavigationControlelr 中导航栏的 class 设置为我的自定义导航栏。 在我的 main view controlr 中添加:
self.navigationController?.navigationBar.translucent = true;
self.navigationController?.navigationBar.backgroundColor = UIColor.clearColor()
但结果是我的主视图控制器仍然有一个导航栏位置(尽管它是空的)。我不能把这个地方设为透明以便看到下面的图像吗?
将其添加到主视图控制器
override func viewDidLoad() {
super.viewDidLoad()
self.navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: UIBarButtonItemStyle.Plain, target: nil, action: nil)
self.navigationController?.navigationBar.setBackgroundImage(UIImage(), forBarMetrics: UIBarMetrics.Default)
self.navigationController?.navigationBar.shadowImage = UIImage()
}
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
self.navigationController?.setNavigationBarHidden(true, animated: true)
}
override func viewWillDisappear(animated: Bool) {
super.viewWillDisappear(animated)
self.navigationController?.setNavigationBarHidden(false, animated: true)
}