UITabViewController中的共享数据

时间:2016-01-14 19:35:30

标签: ios objective-c uinavigationcontroller uitabbarcontroller

我希望TabBarController的所有子视图都能访问相同的信息。

我有一个导航控制器,可让用户选择一行。选择它后,它会将NSMutableDictionary推送到TabBarController中的第一个ViewController。请参阅布局截图。

工作正常,但如何让其他视图访问同一条信息呢?

字典包含很多信息,我想把它分解成其他屏幕。

enter image description here

来自我的UINavigationController

- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
    UITabBarController *tbc = (UITabBarController*)segue.destinationViewController;
    CallDetailViewController *dv = [tbc childViewControllers][0];
    dv.thisDictionary = Some dictionary;

}

点击我标签中的第一个UIViewController

@interface CallDetailViewController : UIViewController
@property (weak, nonatomic) NSMutableDictionary* thisDictionary;
@end

我是否需要在每个UIViewController上使用NSMutableDictionary?或者我可以调用一些主词典文件吗?

值得注意的是,我目前没有使用UITabViewController文件。

1 个答案:

答案 0 :(得分:0)

你可以把你的词典属性放在你的TabBarController中,这样所有childViewControllers都可以访问它,最简单的方法是子类UITabBarController,并从每个childViewControllers访问它的属性:

[(MyTabBarController *)self.tabBarController thisDictionary];

从所有childViewControllers

中操作此字典也很有帮助