【发布时间】:2021-02-22 09:25:14
【问题描述】:
我有一个导航控制器,我在其中创建了导航栏,现在当我进入新屏幕时,我想更改导航的左侧图标。但它不起作用
var wwwe = TPCustomNavigationViewController()
override func viewDidLoad() {
super.viewDidLoad()
self.wwwe.backButton?.setImage(#imageLiteral(resourceName: "arrow_gray_sx"), for: .normal)
self.wwwe.backButton?.setImage(#imageLiteral(resourceName: "arrow_gray_sx"), for: .selected)
guard let url = URL(string: "https://toduba-website-test.clikapp.vercel.app/helpdesk") else {
return
}
let request = URLRequest(url: url)
webview?.load(request)
}
【问题讨论】:
-
self.wwwe.backButton是零吗?TPCustomNavigationViewController你正在创建一个全新的实例,是屏幕上显示的那个吗? -
@Larme 在 TPCustomNavigationViewController 中有一个 backButton,我为使用它的所有视图设置了正确的图像。仅在我编写代码的这个视图中,我想要一个不同的图标,但如果我访问该属性并尝试更改它,想象没有任何变化
-
(self.navigationController as? TPCustomNavigationViewController).backButton?.setImage(#imageLiteral(resourceName: "arrow_gray_sx"), for: .normal)代替。您不明白的是,当您执行let wwe = TPCustomNavigationViewController()时,实际上是let wwe = TPCustomNavigationViewController.init(),这意味着它是一个新对象,不是现有对象,也不是在屏幕上看到的对象。 -
如果您推送到另一个控制器并需要从那里更改,请将您的代码放入 viewWillAppear() 方法中,当您从另一个 VC 弹出时,该方法将调用。
-
@Larme 哦,好的,明白了,我创建了一个新的,但没有在实践中显示它.. 好的,我更改了图标。但我现在有一个问题,当我重新访问控制器时,它总是显示这个 icosa 而不是 i 了
标签: ios swift navigation