Как получить цвет фона представления из встроенного представления - PullRequest
0 голосов
/ 17 января 2019

И заранее спасибо за любую помощь.

У меня есть встроенное представление, которое я хочу загрузить в несколько ViewControllers. это работает нормально. Проблема возникает, когда я пытаюсь получить цвет фона основного просмотра. Изображение - настройка VC

Итак, я попробовал все виды. Я думал об использовании userDefaults и сохранении цвета при загрузке основного VC и получении цвета из userDefaults во встроенном VC, но это похоже на хак.

Код ниже, очевидно, получит только цвет представления во встроенном VC. Я думаю, что там должно быть вдали, чтобы проверить superview или что-то?

 if self.view.backgroundColor!.isEqual(UIColor.White) {
        print("Background is White")
    } else {
        print("not White")
    }

Надеюсь, это имеет смысл. Еще раз спасибо заранее за любое просвещение.

1 Ответ

0 голосов
/ 17 января 2019

Вы можете попробовать это, если это рут

if let roo = (UIApplication.shared.delegate as! AppDelegate).window?.rootViewController { 
    print(roo.view.backgroundColor)
    if roo.view.backgroundColor == .white {
      print("Yes")
    }
    else {
      print("No")
    }
}

если нет Вы также можете создать делегата, например

class ChildVC: UIViewController {
   weak var delegate:ParentVC?
}

и viewDidLoad родительского

if let fir = self.children.first as? ChildVC {
    fir.delegate = self 
}

После этого вы можете получить родительский цвет с помощью

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