更新uitableview数据源并更新标签栏

时间:2015-05-03 18:31:54

标签: ios uitableview uitabbar

我需要你的建议。

我有一个带有表格视图的屏幕,我正在为UITableViewDataSource使用单独的文件。 我需要的是能够访问UITabBarItem内的UITableViewDataSource(因为基于我的tableview上的操作,我将更新我的tableview数据,所以我需要更改我的tabbar上的内容)< / p>

有什么想法吗?

感谢。

要分离我的数据源,在我的控制器中我有:

    var toPayDatasource: MyDataSource!
....
        tableView.dataSource = mDatasource
        tableView.delegate = myDatasource

我的数据源:

class MyDataSource: NSObject, UITableViewDataSource, UITableViewDelegate {
...
}

C.C。

2 个答案:

答案 0 :(得分:1)

在两个远离的对象之间发送消息的一种常见机制是使用NSNotificationCenter。您可以定义自定义事件,并传递更新userInfo字典中标签栏项所需的任何内容。

答案 1 :(得分:0)

由于您的数据源是独立的,因此您可以为视图控制器创建一个Delegate并将其传递给数据源。类似下面的内容(在为tableView设置数据源之后):

mDataSource.tabDelegate = self;

以下列方式声明/定义委托:

// protocol
protocol TabChangerProtocol {
   // function signatures here
}

// data source
class MyDataSource : /* ... */ {
    var tabDelegate : TabChangerProtocol!;
    // rest here 
}

// view controller
class ViewController : TabChangerProtocol, /* ... */ {
// ...
}

这样你就可以从MyDataSource中调用协议函数。

P.S对所有3个点都很抱歉。在手机上输入代码很烦人。