После добавления CustomView в navigationItem, CustomView всегда возвращает ноль - PullRequest
0 голосов
/ 12 февраля 2020

Ниже код успешно добавляет customView к navigationItem, но при попытке доступа к customView он всегда возвращает nil

override func viewDidLoad() {
    super.viewDidLoad()
    let customView = getCustomView() // supposed that the function return a custom view
    let actionButton = UIBarButtonItem(customView: customView)
    self.navigationItem.rightBarButtonItem = actionButton // successfully added customView
    print(navigationItem.rightBarButtonItem?.customView)  // print always nil
}

Результат:

nil

Ответы [ 2 ]

1 голос
/ 19 февраля 2020

Я обнаружил, что лучший способ получить доступ к нашим customView (custom rightBarButtonItem), мы должны получить доступ через Swift стандартным способом:

После добавления customView мы можем получить доступ к customView через: self.navigationItem.rightBarButtonItems только массив.

В моем случае, чтобы получить customView обратно из navigationItem:

let customView = navigationItem.rightBarButtonItems? .First? .CustomView // получить доступ к первому добавленному customView

0 голосов
/ 12 февраля 2020
let customView = UIView(frame: CGRect(x: 0, y: 0, width: 100, height: 100))
    customView.backgroundColor = UIColor.blue// supposed that the function return a custom view
    let actionButton = UIBarButtonItem(customView: customView)
    self.navigationItem.rightBarButtonItem = actionButton // successfully added customView
    print(navigationItem.rightBarButtonItem?.customView)

Это работает для меня

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...