我有两个链接在一起的控制器(通过show例如push),所以当我单击一个按钮时,它将转到另一个视图控制器。显然,这会创建一个返回箭头,以返回到我想要的上一个控制器。
但是,如果我将后退按钮的样式和文本更改为所需的样式,那么它将导致前一个控制器具有另一个视图控制器的特性,这是我不想做的。
所以本质上,我要问的是,回扫时如何停止一个控制器的特性?
这是我大多数视图控制器使用的代码:
self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
self.navigationController?.navigationBar.shadowImage = UIImage()
self.navigationController?.navigationBar.isTranslucent = true
self.navigationController?.navigationBar.titleTextAttributes = .
[NSAttributedString.Key.foregroundColor: UIColor.darkGray,
NSAttributedString.Key.font: UIFont(name: "Avenir Next", size: 20)!]
self.navigationController?.navigationBar.topItem?.title = " "
不同的控制器会有一些细微的差异,但这并没有任何作用,因为它在返回时会发生变化
答案 0 :(得分:0)
如果视图控制器修改了导航控制器(或其导航栏)的属性,则更改将显示在共享该导航控制器的所有视图控制器中。
如果只希望对一个视图控制器显示更改,则应在该视图控制器的viewWillAppear
中进行更改,并应在同一视图的viewWillDisappear
中重置更改控制器。这样,更改(大部分)仅在该视图控制器中可见。