Быстрое изменение UITabBarItem изображения и цветовой оттенок динамически - PullRequest
0 голосов
/ 21 апреля 2019

У меня есть форма, которую необходимо заполнить от пользователя, которая разделена между 3 UITabBarItems в 1 UITabBarController.Я хотел бы динамически изменить изображение UITabBarItem.Например, пользователь находится на первом шаге и сразу после завершения настройки, необходимой на этом шаге, я хочу, чтобы UITabBarItem, ответственный за этот UIViewController, изменил свое изображение на галочку, указывающую, что пользователь может перейти к шагуtwo

Я попытался установить tabBarItem в текущем контроллере представления на изображение, когда все значения будут завершены, но это не сработало

if manufacturerCompleted
    && modelCompleted
    {
        let image = UIImage(named: "tick")
        self.tabBarItem.image = image?.withRenderingMode(.automatic)
    }

Заранее спасибо!:)

1 Ответ

0 голосов
/ 21 апреля 2019

Лично я не вижу ошибок в коде. Может быть, это не выполняется?

Полагаю, у вас нет функции @IBAction, которая вызывается в событии изменения текста (или как бы оно ни вызывалось). Попробуйте настроить один, подключите его к раскадровке и повторите попытку.

О, и более «быстрым» способом обработки опционов является «опциональное связывание». Подробнее здесь .

var manufacturerCompleted = false
var modelCompleted = false

@IBAction func handleKeyDown(_ sender: UITextField) {
  updateManufacturerComplete(sender)
  updateModelComplete(sender)

  if manufacturerCompleted && modelCompleted {
    if let image = UIImage(named: "tick") as UIImage? {
      self.tabBarItem.image = image.withRenderingMode(.automatic)
    }
  }
}

func updateManufacturerComplete(_ sender: UITextField) {
  // Your condition here
  // ...
  self.manufacturerCompleted = true
}

func modelCompleted(_ sender: UITextField) {
  // Your condition here
  // ...
  self.modelCompleted = true
}
...