Как перезагрузить представление из другого представления, используя делегат - PullRequest
0 голосов
/ 01 июля 2019

У меня есть ВК, где я могу изменить цвет фона моего приложения.
Каждый раз, когда я нажимаю кнопку, меняются все фоновые изображения моего ВК, кроме контейнера ВК.Я полагаю, это потому, что оно определенным образом содержит фоновое меню.
Вы можете получить доступ к фону vc из бокового меню.

enter image description here

Код, который я использовал в фоновом меню, выглядит следующим образом:

 @IBAction func lightBrownButton(_ sender: Any) {
    let appDelegate = UIApplication.shared.delegate as! AppDelegate

    appDelegate.containerVC?.colorView.backgroundColor = lightBrown
     colorView.backgroundColor = lightBrown

     //I have an extension for this
    defaults.setColor(color: lightBrown, forKey: BackgroundColorKey)
}

В то время как в других VC я реализовал это:

  if defaults.value(forKey: BackgroundColorKey) != nil {
        defaults.synchronize()
        let color = defaults.colorForKey(key: BackgroundColorKey)
        view.backgroundColor = color
        colorView.backgroundColor = color
    }

NB.colorView - это обычный вид, об этом не нужно беспокоиться.

Код выше находится в моем viewDidLoad(), я даже пытался вставить это в мой viewWillAppear, но он не работает (только для контейнера VC).

Я искалздесь было много решений, но ничего не помогло:
Я пытался добавить loadView(), я пытался создать функцию, содержащую последнюю часть кода, которую я здесь написал, и вызывал ее из делегата, и много других вещей, ноничего ...
Я прочитал документацию Apple для разработчиков о viewWillAppear и обнаружил, что:

Если контроллер представления представлен контроллером представления внутри popover, этот метод не вызываетсяконтроллер представления представления после того, как представленный контроллер отклонен.

Так что, я думаю, это не сработает, потому что изменение фона контейнера похоже на изменение фона моего backgroundVC с помощью метода делегата: он не будет работать, поскольку он находится в том же vc.

Обратите внимание, что когда я закрываю приложение и снова открываю его, фон меняется.

...