2016-01-04 4 views
2

Я пытаюсь что-то относительно просто. У меня есть UIButton, который загружает с изображением:Невозможно обновить UIButton.image после просмотра загрузок

@IBOutlet var peer5Outlet: UIButton! 

    override func viewDidLoad() { 
    super.viewDidLoad() 

    peer5Outlet.enabled = true 
    var img = UIImage(named: "camera") 
    peer5Outlet.setImage(UIImage(named: "camera"),forState: UIControlState.Normal) } 

После того, как он будет загружен, я просто хочу, чтобы обновить этот образ с помощью вызова метода:

func updateButtonImage() { 

    peer5Outlet.imageView!.image = UIImage(named: "connected")! 

    print("peer5Outlet.imageView!.image = \(peer5Outlet!.imageView!.image!)") 

} 

Однако я до сих пор не удалось обновить образ; исходное изображение никогда не изменяется в представлении.

Возможно, мне не хватает какого-либо вида перезагрузки?

+0

Вам нужно установить изображение так же, как в 'viewDidLoad', через' setImage() ' – Cristik

ответ

1

Обновление вашей updateButtonImage функция

func updateButtonImage() { 
    peer5Outlet.setImage(UIImage(named: "connected"), forState: .Normal) 
    print("peer5Outlet.imageView!.image = \(peer5Outlet!.imageView!.image!)") 
} 
+0

Спасибо, что сработало. Но позвольте мне беспокоить вас еще одним вопросом - и простите меня, если это более подходит для отдельного сообщения: Надеюсь, что мы изменим образ UIButton из другого класса (Swift-файл). Я делаю это с помощью вызова метода этого пути (SendSoundsViewControlller() является КИ с помощью метода):. SendSoundsViewController() updateButtonImage() Но когда я делаю это, компилятор говорит мне мой UIButton равен нуль: со смертельным исходом error: неожиданно найден nil при разворачивании необязательного значения –

+0

Вот почему это другой экземпляр viewController. Я действительно могу порекомендовать новый вопрос или сделать поиск, так много сообщений в SO для этой проблемы. –

+0

@CharlieStephenson вот способ, которым вы могли бы это сделать http://stackoverflow.com/a/25204814/5576310 –

1

Попробуйте

peer5Outlet.setBackgroundImage(UIImage(named: "connected"), forState: UIControlState.Normal) 

Редактировать: Чтобы использовать метод setImage, вам необходимо изменить тип кнопки на «Пользовательский» ...

Смежные вопросы