rightBarButtonItem图像没有显示出来

任何人都可以帮我理解我的代码中有什么问题。 我没有得到它我的代码编译罚款没有任何错误,但我的形象没有显示出来。我相信我的形象出现在资产文件夹,我也给我的图像正确的名称。 我正在编程。 以下是我的代码 –

* AppDelegate-:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { // Override point for customization after application launch. windowLayout() application.statusBarStyle = .lightContent return true } func windowLayout() { window = UIWindow(frame: UIScreen.main.bounds) window?.makeKeyAndVisible() let layout = UICollectionViewFlowLayout() window?.rootViewController = UINavigationController(rootViewController: HomeController(collectionViewLayout: layout)) UINavigationBar.appearance().barTintColor = UIColor(colorLiteralRed: 238/255, green: 32/255, blue: 31/255, alpha: 1) let statusBarView = UIView() statusBarView.backgroundColor = UIColor(colorLiteralRed: 194/255, green: 31/255, blue: 31/255, alpha: 1) window?.addSubview(statusBarView) window?.translatesAutoresizingMaskIntoConstraints = false //window?.addConstraintsWithFormat(format: "H:|[v0]|", views: statusBarView) //window?.addConstraintsWithFormat(format: "V:|[v0(20)]", views: statusBarView) UINavigationBar.appearance().shadowImage = UIImage() //UINavigationBar.appearance().setBackgroundImage(UIImage(),forBarMatrics: .default) } 

扩展文件 – :

 import UIKit protocol navigationBarItems { func searchBarButton() func handleMoreButton() } extension UINavigationController:navigationBarItems { func handleMoreButton() { } func searchBarButton() { let searchBarImage = UIImage(named: "search-icon")?.withRenderingMode(UIImageRenderingMode.alwaysTemplate) let searchImage = UIBarButtonItem(image: searchBarImage, style: UIBarButtonItemStyle.done, target: self, action: #selector(handleSearch)) navigationItem.rightBarButtonItem = searchImage } func handleSearch() { print("123") } } 

控制器类 – :

 class HomeController: UICollectionViewController,UICollectionViewDelegateFlowLayout { override func viewDidLoad() { super.viewDidLoad() setUpLayout() setUpMenuBar() fetchJsonData() navigationController?.searchBarButton() } 

我已经通过testing断点来检查我的函数是否被调用。 它工作正常,但图像不显示请帮助。

尝试扩展UIViewController而不是UINavigationController

 extension UIViewController:navigationBarItems { func handleMoreButton() { } func searchBarButton() { let searchBarImage = UIImage(named: "search-icon")?.withRenderingMode(UIImageRenderingMode.alwaysTemplate) let searchImage = UIBarButtonItem(image: searchBarImage, style: UIBarButtonItemStyle.done, target: self, action: #selector(handleSearch)) navigationItem.rightBarButtonItem = searchImage } func handleSearch() { print("123") } } 

现在从`viewDidLoad“调用这个方法

 class HomeController: UICollectionViewController,UICollectionViewDelegateFlowLayout { override func viewDidLoad() { super.viewDidLoad() setUpLayout() setUpMenuBar() fetchJsonData() self.searchBarButton() }