如何在iOS Swift中将数据从ViewController传递到UITabBarController



我一直在尝试以编程方式将数据从ViewController传递到UITabBarController。

这是代码的初始ViewController

let vc = ViewController(nibName: "ViewController", bundle: nil)
vc.modalPresentationStyle = .fullScreen //or .overFullScreen for transparency
vc.text2 = "text 222"

self.navigationController?.pushViewController(vc, animated: true)

UITabBarConroller代码:

class ViewController: UITabBarController, UITabBarControllerDelegate {
var text2: String?
override func viewDidLoad() {
super.viewDidLoad()

print("text2", text2 ?? "empty")
self.delegate = self
if #available(iOS 15.0, *) {
let appearance = UITabBarAppearance()
appearance.configureWithOpaqueBackground()
appearance.backgroundColor = UIColor.blue
UITabBar.appearance().standardAppearance = appearance
UITabBar.appearance().scrollEdgeAppearance = UITabBar.appearance().standardAppearance
}

}

我的问题是,我试图将数据从初始的viewController接收到UITabBarController,但没有收到任何数据,而是出现了tabBar控制器视图。

如有任何帮助,不胜感激。。。

let vc=ViewController(nibName:"ViewController",bundle:nil(

vc.modalPresentationStyle=.fullScreen//或.overFullScreen用于透明

NotificationCenter.default.post(名称:NotificationConstant.text,对象:nil,用户信息:["text2":"](

self.navigationController?。pushViewController(vc,动画:true(

/////UITabBarController

类ViewController:UITabBarController,UITabBarControllerDelegate{

override func viewDidLoad() {
super.viewDidLoad()

NotificationCenter.default.addObserver(self, selector: #selector(handleText(notification:)), name: NotificationConstant.text, object: nil)
}
@objc func handleText(notification: NSNotification) {
guard let text = notification.userInfo?["text"] as? String else { return }
print(text)
}


}

class NotificationConstant{

// MARK:- Global Notifiication Names
static let text = Notification.Name("text")

}

最新更新