我有一个绘图应用程序,首先选择一个类别。每个类别都有自己的绘图模板。如何获取secondViewController,以加载正确的模板?选择的类别是firstViewController中的一个按钮。
我设法给每个segue一个自己的标识符。然后什么? 我只找到解析数据或图像的方法的示例。但我不希望它解析。我希望它只在secondViewController上加载图像。
SecondViewController.h文件
@property (strong, nonatomic) UIImage *theCatImage;
SecondViewController.m文件
@interface secondViewController()
@property (weak, nonatomic) IBOutlet UIImageView *image;
@end
@implementation secondViewController
- (void)viewDidLoad
{
[super viewDidLoad];
self.image.image = self.theCatImage;
}
ViewController.h文件
#import <UIKit/UIKit.h>
#import "cat01ViewController.h"
@interface ikzieikzieAppViewController : UIViewController
@property (weak, nonatomic) IBOutlet UIImageView *newImage;
@end
ViewController.m文件
- (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;
}
}
修改 上面的代码不起作用,我也不想将图像从一个视图控制器发送到另一个视图控制器。 这就是我想要的; 在firstViewController上,用户可以从四个不同的类别中进行选择。每个类别都将显示自己的绘图模板,并在绘图最后发送到解析数据库时给出自己的ID。 那么,设置它的最佳方法是什么?
*** ***解
最终,这就是我解决它的方式。
的ViewController
-(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;
}
}
SecondViewController
@synthesize catImage, showImage;
- (void)viewDidLoad
{
[catImage setImage:showImage];
[super viewDidLoad];
}
答案 0 :(得分:0)
您要做的是在SecondViewController
上添加一个属性:
@property (nonatomic) int category;
然后在FirstViewController
添加属性
@property (nonatomic) int chosenCategory;
将此项设置为用户选择的类别。
然后在你的seque代码中:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
cat01ViewController *secondView = (cat01ViewController *)segue.destinationViewController;
[secondView setCategory:self.chosenCategory];
}
这将告诉VC需要绘制哪个图像。然后调用解析库方法,根据viewDidLoad
中SecondViewController
方法中选择的ID(类别)检索图像:
SecondViewController
- (void)viewDidLoad
{
[super viewDidLoad];
self.image.image = [ParseLibrary getImageForCategory:self.chosenCategory];
}