使用协议和委托在Tabbar之间传递数据

时间:2016-08-25 12:20:52

标签: ios swift uitabbarcontroller

是否可以使用协议和委托在我的选项卡(视图控制器)之间传递数据? (我知道如何通过标签栏之间的通知中心轻松传递数据,我知道如何使用协议和代表将数据和#34;返回"传递给其他VC)

我正在尽量减少NSNotification中心的使用,因为它们非常混乱。这就是我认为协议会更好的原因

例如,

我有一个制作帖子的标签(PostTab)和一个显示帖子的标签(DisplayTab)。当postTab发布帖子时,允许DisplayTab有一个名为

的委托函数
func postAdded(post: Post) { //Display post } 

其中post是从PostTab传递的。

2 个答案:

答案 0 :(得分:1)

如果我可以建议:

<强> 1。选项:

我输入的内容非常简单 - 可能更简单,所以:

进入PostTab控制器,到达准备好来自用户数据的行:

let index = 1 //you know a real index of our displayTab controller
let displayTabViewController = self.tabBarController?.viewControllers?[index] as! DisplayTabViewController        
displayTabViewController.postAdded(post: POST)

将其放入DisplayTab控制器:

func postAdded(post: Post)
{
    print("This is the: \(post)")
}

<强> 2。选项:

使用AppDelegate作为委托或制作自己的委托。

答案 1 :(得分:0)

没有开箱即用,因为没有支持共享任意数据的协议。你必须实现自己的协议。