使用选项卡控制器布局时在两个视图控制器之间传递数据

时间:2014-11-25 17:13:39

标签: ios swift uitabbarcontroller segue viewcontroller

我正在构建一个包含两个标签的简单应用。 “白噪声”选项卡和“日志”选项卡。当播放或停止白噪声时,我会记录此数据以显示播放或停止声音的日期和时间。我唯一的问题是当我点击“日志”选项卡时,我无法弄清楚如何传递log数组。我尝试在“白噪声”选项卡中使用以下代码:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    var logView = segue.destinationViewController as SecondViewController
    logView.log.append("Testing 123")
}

但我已经意识到,使用标签栏控制器,从一个视图控制器到另一个视图控制器的转换在技术上不是segue。所以我的问题是如何使用Tab Bar Controller在View Controllers之间传递数据?

更新

我创建了一个名为CustomTabBarControllerClass的新类。这是我的这个类的代码:

class CustomTabBarControllerClass: UITabBarController, UITabBarControllerDelegate {

    func tabBarController(tabBarController: UITabBarController, didSelectViewController viewController: UIViewController) {
        println("Test 123!")
    }

}

我在Interface Builder中将CustomTabBarControllerClass设置为“自定义类”。但是,当我切换标签时,println("Test 123!")仍然没有显示在控制台中。

1 个答案:

答案 0 :(得分:0)

UITabBarController有一个委托,其中有一个方法 tabBarController:didSelectViewController:,您可以使用它来完成您正在寻找的内容。

可以找到Apple的文档here