如何在不同的 ViewController 中使用 JSONModel 数据?

Posted

技术标签:

【中文标题】如何在不同的 ViewController 中使用 JSONModel 数据?【英文标题】:How to use JSONModel data in different ViewControllers? 【发布时间】:2017-02-09 09:14:25 【问题描述】:

我在我的目标 c 应用程序中使用 JSONModel。我在第一个 abBarController 中获取所有数据到我的 JSONModel。然后我需要在其他 viewController 中获取这些数据。我正在尝试将此数据发送到其他 viewController,例如:

第一个 ViewController:

@implementation FirstViewController 
...
SecondViewController* infoController = [self.storyboard instantiateViewControllerWithIdentifier:@"secondViewController"];
SecondViewController.model = self.model;//Here send the model with data
[self.navigationController pushViewController:infoController animated:YES];
...
@end

第二个视图控制器:

@interface SecondViewController :UIViewController
 MyModel *model;


@property MyModel *model;

有更好的形式来保持这个数据模型的实例化并从另一个 viewController 获取模型数据而不用在属性中发送这个?

【问题讨论】:

在模型类中创建共享对象,并在 id 对象中设置 JSON 对象,然后在任何 ViewController 中访问它。 使用单例设置或获取模型数据 【参考方案1】:

创建对象类

在 .h 对象类中

@interface FirstModel : NSObject
 
@property(nonatomic,strong)NSMutableArray *productsArray;

在 .m 对象类中

-(id)init
    self=[super init];
    if (self) 

        _productsArray=[[NSMutableArray alloc]init];

    
    return self;

创建另一个对象类

@interface SecondModel : NSObject
@property (nullable,nonatomic, retain) NSString *name;
@end

在 TableviewViewcontroller .h 文件中 导入两个Object类并插入如下代码

@property(nonatomic,strong)FirstModel *firstListObject;

在 .m 文件中 //rowAt Indexpath 的单元格

SecondModel *prodObj=_firstListObject.productsArray[indexPath.item];
cell.productNameLabel.text=prodObj.name;

您可以在任何需要的地方访问此对象类……

【讨论】:

【参考方案2】:

您可以使用单例类,创建您的模型属性。 在另一个 viewController 中,您可以通过单例实例访问您的模型。参考http://www.idev101.com/code/Objective-C/singletons.html

【讨论】:

在应用程序的内存中使用单例可能效率低吗?? 不用担心内存问题。它们非常小【参考方案3】:

或者您可以使用 plist 或数据库将其归档到本地文件

【讨论】:

以上是关于如何在不同的 ViewController 中使用 JSONModel 数据?的主要内容,如果未能解决你的问题,请参考以下文章

在 Swift 中,如何在不同的 ViewController 中永久更改 a 标签的文本?

如何使用来自不同 ViewController 的 JSON 响应填充 UITableView?

如何在 Xamarin for iOS 中呈现具有不同导航的 viewController

如何在一个 viewController 上使用多个搜索栏来访问 Swift 中的不同 JSON 数据?

如何使用核心数据访问保存在不同视图控制器中的阵列?

保存 api Facebook 数据以在不同的 ViewController swift iOS 中使用