如何传递图像以便稍后保存在另一个视图控制器中?
How to pass image to be later saved in another view controller?
我的主视图控制器中有一个 imagePickerController,它允许用户 select 图片。使用这张图片,一些结果被加载到同一视图控制器的 table 视图中。
当 table 视图中的一行被 select 编辑时,另一个 table 视图控制器被打开,其中包含一堆字符串。当 table VC 中的一行被 select 编辑时,另一个 table 视图控制器将加载来自 TMDB api 的电影列表,然后用户滑动保存电影。
在我的应用中,核心数据有单张图片与一些电影相关的关系。
所以我想知道跟踪图像的最佳方式是什么 selected。我知道 NSUserDefaults 不是最好的方法。
您可以在目标 VC 的头文件中声明变量。如;
@property UIImage* sourceImage;
在打开目标VC之前,设置目标VC的图像:
targetViewController.sourceImage = [UIImage ....]
然后在内部目标 VC 中使用:
if (_sourceImage != nil){
_sourceImage // Your passed image
}
第二种方式
正在考虑使用 Singleton。
创建一个新的NSObject
并将其命名为Singleton
在 .m
文件中包含 init
+ (id)sharedManager {
static Singleton *sharedMyManager = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
sharedMyManager = [[self alloc] init];
});
return sharedMyManager;
}
- (id)init {
if (self = [super init]) {
}
return self;
}
在.h
文件中,定义
+ (id)sharedManager;
@property UIImage* mainImage;
在视图控制器中,#import "Singleton.h"
然后初始化Singleton
并分配您的图像。
第 3 次 VC,再次 #import "Singleton.h"
现在您可以到达
Singleton* si = [Singleton sharedManager];
si.mainImage = // Your image. Check if it's nil or not before use.
我的主视图控制器中有一个 imagePickerController,它允许用户 select 图片。使用这张图片,一些结果被加载到同一视图控制器的 table 视图中。
当 table 视图中的一行被 select 编辑时,另一个 table 视图控制器被打开,其中包含一堆字符串。当 table VC 中的一行被 select 编辑时,另一个 table 视图控制器将加载来自 TMDB api 的电影列表,然后用户滑动保存电影。
在我的应用中,核心数据有单张图片与一些电影相关的关系。
所以我想知道跟踪图像的最佳方式是什么 selected。我知道 NSUserDefaults 不是最好的方法。
您可以在目标 VC 的头文件中声明变量。如;
@property UIImage* sourceImage;
在打开目标VC之前,设置目标VC的图像:
targetViewController.sourceImage = [UIImage ....]
然后在内部目标 VC 中使用:
if (_sourceImage != nil){
_sourceImage // Your passed image
}
第二种方式
正在考虑使用 Singleton。
创建一个新的NSObject
并将其命名为Singleton
在 .m
文件中包含 init
+ (id)sharedManager {
static Singleton *sharedMyManager = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
sharedMyManager = [[self alloc] init];
});
return sharedMyManager;
}
- (id)init {
if (self = [super init]) {
}
return self;
}
在.h
文件中,定义
+ (id)sharedManager;
@property UIImage* mainImage;
在视图控制器中,#import "Singleton.h"
然后初始化Singleton
并分配您的图像。
第 3 次 VC,再次 #import "Singleton.h"
现在您可以到达
Singleton* si = [Singleton sharedManager];
si.mainImage = // Your image. Check if it's nil or not before use.