Ios 将图像加载到另一个视图控制器
我有一个以选择类别开始的绘图应用程序。每个类别都有自己的绘图模板。如何获取secondViewController以加载正确的模板?从firstViewController中通过按钮选择类别 我已经设法给每个序列一个自己的标识符。然后呢? 我只找到解析数据或图像的方法示例。但我不希望它被解析。我希望它仅在secondViewController上加载图像 SecondViewController.h文件Ios 将图像加载到另一个视图控制器,ios,image,Ios,Image,我有一个以选择类别开始的绘图应用程序。每个类别都有自己的绘图模板。如何获取secondViewController以加载正确的模板?从firstViewController中通过按钮选择类别 我已经设法给每个序列一个自己的标识符。然后呢? 我只找到解析数据或图像的方法示例。但我不希望它被解析。我希望它仅在secondViewController上加载图像 SecondViewController.h文件 @property (strong, nonatomic) UIImage *theCatI
@property (strong, nonatomic) UIImage *theCatImage;
SecondViewController.m文件
@interface secondViewController()
@property (weak, nonatomic) IBOutlet UIImageView *image;
@end
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if ([segue.identifier isEqualToString:@"vervoer"]) {
cat01ViewController *secondView = (cat01ViewController *)segue.destinationViewController;
// dont know what to send here... i tried to hide and show a image like this;
secondView.theCatImage = self.newImage;
}
}
@第二视图控制器的实现
- (void)viewDidLoad
{
[super viewDidLoad];
self.image.image = self.theCatImage;
}
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"vervoer"]) {
UIImage *image = [UIImage imageNamed:@"vervoer.png"];
cat01ViewController *vc = [segue destinationViewController];
vc.showImage = image;
}
else if ([segue.identifier isEqualToString:@"huis"]) {
UIImage *image = [UIImage imageNamed:@"huis.png"];
cat01ViewController *vc = [segue destinationViewController];
vc.showImage = image;
}
else if ([segue.identifier isEqualToString:@"mode"]) {
UIImage *image = [UIImage imageNamed:@"vinkje.png"];
cat01ViewController *vc = [segue destinationViewController];
vc.showImage = image;
}
else if ([segue.identifier isEqualToString:@"eten"]) {
UIImage *image = [UIImage imageNamed:@"bord.png"];
cat01ViewController *vc = [segue destinationViewController];
vc.showImage = image;
}
}
ViewController.h文件
#import <UIKit/UIKit.h>
#import "cat01ViewController.h"
@interface ikzieikzieAppViewController : UIViewController
@property (weak, nonatomic) IBOutlet UIImageView *newImage;
@end
编辑
上面的代码不起作用,我也不想将图像从一个viewcontroller发送到另一个viewcontroller。
这就是我想要的强>
在firstViewController上,用户可以从四个不同类别中进行选择。每个类别将显示自己的绘图模板,并且在最后将绘图发送到解析数据库时提供自己的ID。
那么,最好的方法是什么
***解决方案***
最终,我就是这样解决的。
视图控制器
- (void)viewDidLoad
{
[super viewDidLoad];
self.image.image = self.theCatImage;
}
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"vervoer"]) {
UIImage *image = [UIImage imageNamed:@"vervoer.png"];
cat01ViewController *vc = [segue destinationViewController];
vc.showImage = image;
}
else if ([segue.identifier isEqualToString:@"huis"]) {
UIImage *image = [UIImage imageNamed:@"huis.png"];
cat01ViewController *vc = [segue destinationViewController];
vc.showImage = image;
}
else if ([segue.identifier isEqualToString:@"mode"]) {
UIImage *image = [UIImage imageNamed:@"vinkje.png"];
cat01ViewController *vc = [segue destinationViewController];
vc.showImage = image;
}
else if ([segue.identifier isEqualToString:@"eten"]) {
UIImage *image = [UIImage imageNamed:@"bord.png"];
cat01ViewController *vc = [segue destinationViewController];
vc.showImage = image;
}
}
第二视图控制器
@synthesize catImage, showImage;
- (void)viewDidLoad
{
[catImage setImage:showImage];
[super viewDidLoad];
}
您要做的是在
SecondViewController
上添加一个属性:
@property (nonatomic) int category;
然后在内部FirstViewController
- (void)viewDidLoad
{
[super viewDidLoad];
self.image.image = [ParseLibrary getImageForCategory:self.chosenCategory];
}
添加属性
@property (nonatomic) int chosenCategory;
将其设置为用户选择的类别
然后在序列代码中:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
cat01ViewController *secondView = (cat01ViewController *)segue.destinationViewController;
[secondView setCategory:self.chosenCategory];
}
这将告诉VC需要绘制哪个图像。然后调用parse library方法,根据在SecondViewController
中的viewDidLoad
方法中选择的ID(类别)检索图像:
@property (nonatomic) int category;
SecondViewController
- (void)viewDidLoad
{
[super viewDidLoad];
self.image.image = [ParseLibrary getImageForCategory:self.chosenCategory];
}
粘贴一些你已经尝试过的代码,我在上面编辑的代码中加入了我现在所有的相关代码。这样,它必须将图片从第一视图发送到第二视图。但它不起作用,我不想从第一视图发送图片,但只在按下第一视图上的按钮时显示在第二视图上。