使用 swift 将数据从 UITabBarView 类传递到 UIViewController 的子类

Posted

技术标签:

【中文标题】使用 swift 将数据从 UITabBarView 类传递到 UIViewController 的子类【英文标题】:passing data from UITabBarView Class to sub class of UIViewController using swift 【发布时间】:2016-01-25 08:44:23 【问题描述】:

我正在尝试将数据从我的 TabViewClass 传递到其 Tab ViewController 的子类 这是我的 TabBar 类

类 TabBarController : UITabBarController, UITabBarControllerDelegate

var unitId : Int = 0;

override func viewDidLoad() 
    super.viewDidLoad()
    print("TabBarVC Called")
    unitId = 10;
    print("Unit Id = \(unitId)")

    self.delegate = self;

在运行这个 viewDidLoad() 之后,我的第一个 Tab Bar 的子类自动调用了它的 viewDidLoad() .. 我怎样才能将我的主要 Tab Bar Controller 类数据共享到它的子 Tab 类(视图控制器)中 .. 使用 swift

【问题讨论】:

【参考方案1】:

不知道好不好用,我是这样传数据的:

class TabBarController : UITabBarController, UITabBarControllerDelegate
var unitId : Int = 0;

override func viewDidLoad() 
super.viewDidLoad()
print("TabBarVC Called")
unitId = 10;
print("Unit Id = \(unitId)")

self.delegate = self;

//Pass data to all tab controller
let MovementRepVC: MovementRep = self.viewControllers![0] as! MovementRep
MovementRepVC.id = self.unitId

let secondVC: UIViewController = self.viewControllers![1] as! UIViewController
secondVC.data = self.myData

 

希望对你有所帮助。

【讨论】:

firstVC .. 不接受我的 ViewController 类变量 class MovementRep : UIViewController , UITableViewDelegate, UITableViewDataSource var id : Int = 0 .. 在这个类中我想接收 id.. 我的第一个标签栏控制器类 @zeeshannazakat 因为你必须像这样修改代码:让 MovementRepVC: MovementRep = self.viewControllers![0] as! MovementRep MovementRepVC.yourData = self.dataToShare 上面的代码给了我这个例外:在 中列出的 UIView 也可能有帮助。 VC segue 调用无法将类型“UITabBarController”(0x110e7d5d8)的值转换为“VITS.MovementRep”(0x10efa92d0)。 /Users/Irfan/Documents/My ISO APPS/VITS/VITS/TabBarController.swift:38:9:实例成员“unitID”不能用于“MovementRep”类型

以上是关于使用 swift 将数据从 UITabBarView 类传递到 UIViewController 的子类的主要内容,如果未能解决你的问题,请参考以下文章

如何将 json 数据从 alamofire 转换为 swift 对象

将核心数据从 Swift 迁移到 SwiftUI

将数据从 TableViewController 传递到 XIB 文件而不使用 Segues-Swift 3

当 iPhone 不在附近时,使用 Swift 将数据从 Apple Watch 发送到 iPhone

使用 Swift 3 将数据从 Modal Viewcontroller 传递到 rootController(不要 Segue)

将数据从标签栏控制器传递到 swift 和 xcode 中的视图控制器