gpt4 book ai didi

iphone - 将 ViewController 数据加载到模型中

转载 作者:行者123 更新时间:2023-11-28 22:34:32 26 4
gpt4 key购买 nike

我正在开发一个应用程序,该应用程序将从六个不同的 View Controller 收集数据,然后创建所收集数据的 PDF 摘要。我知道有两种方法可以从多个屏幕聚合信息,但是这两种方法看起来都很麻烦,让我觉得有更好的方法。

选项 #1 - 核心数据 - 使用 NSManagedObjects,然后在下一个 View Controller 上获取、添加和重新保存,然后获取...并重新保存...然后获取并重新保存。最后获取所有内容以构建 PDF

选项 #2 - 在 View Controller 之间传递数据。但似乎我必须将数据从当前的 VC 传递到下一个,然后我必须将相同的数据重新传递到下面的 VC 等等。也戒不掉劳力。

有没有更简单的方法来聚合这些数据并在我调用该类时将其传递给 PDF

我(显然)对 iOS 比较陌生。

谢谢,本

最佳答案

有很多方法可以做到这一点,但一种方法是定义一个所有 View Controller 都可以访问的单例模型对象。例如,Model.h 定义了两个属性,textarray:

#import <Foundation/Foundation.h>

@interface Model : NSObject

@property (nonatomic, strong) NSString *text;
@property (nonatomic, strong) NSMutableArray *array;

+ (instancetype)sharedModel;

@end

Model.m 只是实现了 sharedManager 方法,允许各种 Controller 访问这个共享模型:

#import "Model.h"

@implementation Model

+ (instancetype)sharedModel
{
static id sharedMyModel = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
sharedMyModel = [[self alloc] init];
});
return sharedMyModel;
}

@end

然后,如果 View Controller 想要使用它,只需包含一个

#import "Model.h" 

在顶部,然后任何 View Controller 都可以通过以下方式访问模型:

Model *model = [Model sharedModel];

现在您可以随心所欲地设置或获取textarray 属性。例如

model.text = @"Hello, World";

显然,只需将 Model.h 中的属性更改为您想要的任何内容,而不是我的字符串和数组示例。

关于iphone - 将 ViewController 数据加载到模型中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16455111/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com