快速发送ui数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了快速发送ui数据相关的知识,希望对你有一定的参考价值。

我是SWIFT的初学者,现在我正面临着一个问题。在这个PHOTO我正在展示我的UI,以澄清我在说什么。在第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)

我希望在第3部分中有红色!但每当我运行应用程序时,都会显示导航控制器的defualt颜色

有谁知道我应该如何管理/处理这个问题?

答案

然后在第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)
另一答案

登录时设置

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中写这个,

确保VC的root是navigationController

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

即使你没有设置任何值,它也不会崩溃!!

以上是关于快速发送ui数据的主要内容,如果未能解决你的问题,请参考以下文章

将数据从活动发送到片段android工作室[重复]

如何将字符串数据从活动发送到片段?

CSS可视化工具-助力快速开发css片段

CSS可视化工具-助力快速开发css片段

如何将列表视图中的数据从一个片段发送到另一个片段

如何将数据从回收器适配器发送到片段 |如何从 recyclerview 适配器调用片段函数