отправка данных пользовательского интерфейса в быстрой - PullRequest
0 голосов
/ 05 сентября 2018

Я немного новичок в SWIFT и сейчас сталкиваюсь с проблемой с пользовательским интерфейсом. В этом ФОТО я показываю свой интерфейс, чтобы уточнить, что я говорю. в части 1 я проверяю, вошел ли пользователь в свою учетную запись или нет, если да, то она переходит к части 3, если нет - к части 2. при входе пользователя в часть 2 я передаю пользователя в часть 3. части 1 и 2 не должны иметь цвета навигации, хотя часть 3 должна иметь цвет навигации.

Часть 1:

if let token = UserDefaults.standard.string(forKey: ConstantsKey.token){
        if !token.isEmpty{
            let storyboard : UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
            let vc = storyboard.instantiateViewController(withIdentifier: "MainTabBarVC")
            let rootController = UINavigationController(rootViewController: vc)
            self.present(rootController, animated: true, completion: nil)
        }else{
            let storyboard : UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
            let vc = storyboard.instantiateViewController(withIdentifier: "LoginVc")
            let rootController = UINavigationController(rootViewController: vc)
            self.present(rootController, animated: true, completion: nil)
        }
    }else{
        let storyboard : UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
        let vc = storyboard.instantiateViewController(withIdentifier: "LoginVc")
        let rootController = UINavigationController(rootViewController: vc)
        self.present(rootController, animated: true, completion: nil)
    }

Часть 2:

let storyboard : UIStoryboard = UIStoryboard(name: "MainTabBar", bundle: nil)
                        let vc = storyboard.instantiateViewController(withIdentifier: "MainTabBarVC")
                        let rootController = UINavigationController(rootViewController: vc)
                        self.present(rootController, animated: true, completion: nil)

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

Кто-нибудь знает, как мне решить эту проблему?

Ответы [ 2 ]

0 голосов
/ 05 сентября 2018

При входе в систему установить

UserDefaults.standard.set(true,forKey: ConstantsKey.token)

А на странице маршрутизации отметьте это

if UserDefault.standar.bool(forKey: ConstantsKey.token){
   //Go to home page
}else {
   setUpNav()
   //Go to login page
}

настройка навигации

этот будет установлен для всего приложения

    func setUpNav(){
            UINavigationBar.appearance().isTranslucent = false
            UINavigationBar.appearance().tintColor = UIColor.red
            UINavigationBar.appearance().barTintColor  = UIColor.white


            UINavigationBar.appearance().titleTextAttributes = [NSAttributedStringKey.foregroundColor: UIColor.white,
                                                                NSAttributedStringKey.font: UIFont(name:"Cairo-Bold", size:22.0)!]
        }

если вы хотите для одного VC,

напиши это внутри этого ВК,

убедитесь, что корнем VC является навигационный контроллер

self.navigationController.navigationBar.barTintColor = .white
self.navigationController.navigationBar.tintColor = .red

Даже если вы не установили никакого значения, оно не падает !!

0 голосов
/ 05 сентября 2018

Затем в части 1:

    if !token.isEmpty{
                let storyboard : UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
                let vc = storyboard.instantiateViewController(withIdentifier: "MainTabBarVC")
                let rootController = UINavigationController(rootViewController: vc)
                rootController?.navigationBar.barTintColor = UIColor.red
                self.present(rootController, animated: true, completion: nil)

Часть 2:

let storyboard : UIStoryboard = UIStoryboard(name: "MainTabBar", bundle: nil)
                        let vc = storyboard.instantiateViewController(withIdentifier: "MainTabBarVC")
                        let rootController = UINavigationController(rootViewController: vc)
                        rootController?.navigationBar.barTintColor = UIColor.red
                        self.present(rootController, animated: true, completion: nil)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...