ios – 尝试在标签栏控制器之间传递数据

我正试图在标签栏中的视图之间传递一些数据.我的第一个视图能够从我的模型类加载数据并对其进行操作.但是当我点击标签栏控制器中的第二个或第三个标签时,数据不会通过.这是我试图通过它的方式.

-(void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController{

if (tabBarController.selectedindex == 1){
HashTagTableViewController *hash [[HashTagTableViewController alloc]init];
    hash.userArray = Feed.userArray;
}else if (tabBarController.selectedindex == 2){
    PhotoTagTableViewController *photo = [[PhotoTagTableViewController alloc]init;
    photo.userArray = Feed.userArray;

}

}

Feed是我在当前视图控制器中创建的模型类实例名称.我试图避免创建模型类的多个实例,因为它必须多次调用API.我要做的就是将Feed.userArray传递给不同的视图,以便进行不同的操作.

解决方法

不要在此方法中创建视图控制器.
UITabBarController在初始化时自动创建所有视图控制器.试试这个:

-(void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController{
    if (tabBarController.selectedindex == 1){
        HashTagTableViewController *hash = (HashTagTableViewController *) viewController;
        hash.userArray = Feed.userArray;
    }else if (tabBarController.selectedindex == 2){
        PhotoTagTableViewController *photo = (PhotoTagTableViewController *)viewController;
        photo.userArray = Feed.userArray;
    }
}

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...