У меня есть собственный контроллер панели вкладок.каждая вкладка содержит контроллер представления, встроенный в контроллер навигации.Я получаю значение для pro_user из базы данных в appledelegate и устанавливаю его там.затем перед запуском CustomTabBarController (в appledelegate) я устанавливаю для его свойства "pro_user" значение true или false (это работает, и CustomTabBarController получает значение от appledelegate).
Теперь я пытаюсь передать это же значение ViewControllers (ViewController1 и ViewController2).у каждого контроллера представления также есть свойство "pro_user". Я делаю это, создавая экземпляры viewcontroller и затем устанавливая их свойство pro_user перед внедрением каждого viewcontroller в навигационный контроллер.но ни один viewcontroller фактически не получает значение pro_user, которое я устанавливаю в CustomTabBarController.Надеюсь, это понятно.Как передать значение pro_user из CustomTabBarController в каждый из контроллеров представления?программно (я не использую раскадровки)
class AppDelegate: UIResponder, UIApplicationDelegate {
var pro_user = true
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions:
[UIApplicationLaunchOptionsKey: Any]?) -> Bool {
window = UIWindow(frame:UIScreen.main.bounds)
window?.makeKeyAndVisible()
let customTabBarController = CustomTabBarController()
customTabBarontroller.pro_user = pro_user
self.window?.rootViewController = customTabBarController
return true
}
}
class CustomTabBarController:UITabBarController{
var pro_user : Bool?
override func viewDidLoad(){
super.viewDidLoad()
let viewController1 = ViewController1()
viewController1.pro_user = pro_user //doesn't work
let firstNavigationController = UINavigationController(rootViewController: viewController1)
let viewController2 = ViewController2()
viewController2.pro_user = pro_user //doesn't work
let secondNavigationController = UINavigationController(rootViewController:viewController2)
viewControllers=[firstNavigationController,secondNavigationController]
}