Как мне получить доступ к программно созданным дочерним представлениям в другой функции

#ios #swift

#iOS #swift

Вопрос:

Я работаю над пользовательским приложением для наклеек и хотел бы изменить цвет фона stickerBrowserView во время функции willTransition. Я программно создал дочернее представление, которое добавляется во время viewDidLoad

 func createBrowser() {
    let controller = MSStickerBrowserViewController(stickerSize: .regular)

    addChildViewController(controller)

    controller.stickerBrowserView.backgroundColor = UIColor.black

    controller.stickerBrowserView.dataSource = self
}
  

Как мне ссылаться на это представление вне функции createBrowser()? Я новичок в Swift и все еще учусь. Буду признателен за любую помощь!

Ответ №1:

можно создать объект и назначить глобальной переменной

 lazy var controller: MSStickerBrowserViewController = {

let controller = MSStickerBrowserViewController(stickerSize: .regular)

// Add View Controller as Child View Controller
self.addChildViewController(controller)

return controller
}()
  

а затем использовать там, где вам нужно

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

1. Работает как шарм, спасибо. Это лучший способ сделать это?

2. Сталкивались ли вы с этой ошибкой раньше? Несбалансированные вызовы для начала / завершения переходов внешнего вида для <CKPresentationControllerRootViewController: 0x110a34c20>.