Получить фоновое изображение с контроллера просмотра?

#ios #swift

#iOS #swift

Вопрос:

мне нужно получить доступ к фоновому изображению в одном из моих переходов. Для доступа к UIImage я начал создавать протокол / расширение…

Проблема (конечно):
у ‘UIViewController’ нет элемента с именем ‘BackgroundImage’

Как мне это исправить?

 protocol InsetBlurModalSequeProtocol {
    func getBackgroundImage() -> UIImage
}

extension UIViewController: InsetBlurModalSequeProtocol {
    func getBackgroundImage() -> UIImage {
        return self.backgroundImage.image
    }
}
  

Комментарии:

1. Или есть способ преобразовать «Anyobject» в ViewController и протокол?

2. Вы хотите вместо этого расширить свой собственный класс view controller?

3. Да, вроде того. Мне нужно получить доступ к BackgroundImage.image в segue. Так что, может быть, я просто выберу строгий тип? Подождите, строгий тип — это не очень хорошая идея.

Ответ №1:

из любого UIViewController вы хотите фоновое изображение в результирующем. Сначала сохраните это фоновое изображение в UIImage (сначала установите это свойство UIImage в файле .h). Импортируйте этот ViewController.h в желаемый вами view controller, или, как я вижу, вы вызвали метод через делегат (это тоже подойдет), вызывающий это изображение и использующий мгновенный UIImage . Установите фоновое изображение результирующего контроллера представления, которое вы хотите, в методе viewDidLoad

    self.view.backgroundColor = [[UIColor alloc]initWithPatternColor:[UIImage imageNamed:@"imagename.extension"]]; //or give the UIImage filename.