首先,我是XCode和编程的新手,我的英语并不完美。 我有2个视图控制器,L1ViewController和ImageViewController。在L1ViewController中,我有几个按钮,图像为背景。我要做的是当您单击按钮时,操作会将密码和图像传递给图像视图控制器。在ImageViewController中,我有一个UITextfield和一个UIImageView。传递密码字符串工作正常。但传递图像似乎比我想象的更难。 UIImageView不显示图像。
在我的L1ViewController.h中,我创建了一个
-(IBAction)img1;
在我的L1ViewController.m中,这是传递图像和密码字符串的代码:
-(IBAction)img1;
{
ImageViewController *img = [[ImageViewController alloc] initWithImage:[UIImage imageNamed:@"myimage.jpg"] AndAnswerString:@"mypassword"];
[self presentModalViewController:img animated:NO];
}
在我的ImageViewController中,我有这个代码来接收字符串和图像:
-(id)initWithImage:(UIImage *)inImage AndAnswerString:(NSString *)inAnswerString
{
if (self = [super init])
{
[inImage release];
[self setImage:inImage];
[self setAnswerString:inAnswerString];
}
return self;
}
-(void)setImage:(UIImage *)inImage
{
[inImage release];
[logoField setImage:inImage];
}
-(void)setAnswerString:(NSString *)inAnswerString
{
answerString = inAnswerString;
}
在我的ImageViewController.h中我
@interface ImageViewController : UIViewController {
IBOutlet UITextField *answerField;
IBOutlet UIImageView *logoField;
NSString *answerString;
}
@property (nonatomic, retain)NSString *logo;
-(id)initWithImage:(UIImage *)inImage AndAnswerString:(NSString *)inAnswerString;
-(void)setImage:(UIImage *)inImage;
-(void)setAnswerString:(NSString *)inAnswerString;
-(IBAction)enterAnswer;
-(IBAction)back;
为什么我的answerstring工作正常,但显示我的ImageViewController没有图像? 再一次,我是XCode的新手,也许这只是一个愚蠢的错误。 在此先感谢!
答案 0 :(得分:1)
初始化视图控制器时,尚未加载视图。 (这是在调用viewDidLoad:
方法之前发生的。)保存字符串是有效的,因为您没有尝试将其直接放入answerField
,但是,对于图像,您正在尝试更新{{ 1}}太早了。
如果文字有效,您必须在某处将代码logoField
分配给answerString
。
答案 1 :(得分:0)
您在使用之前已经发布了“inImage”,因此请删除代码“[inImage release];”从所有功能中,在使用该图像后将其释放
所以新代码是......以下
-(id)initWithImage:(UIImage *)inImage AndAnswerString:(NSString *)inAnswerString
{
if (self = [super init])
{
//[inImage release];
[self setImage:inImage];
[self setAnswerString:inAnswerString];
}
return self;
}
-(void)setImage:(UIImage *)inImage
{
[logoField setImage:inImage];
[inImage release];
}
答案 2 :(得分:0)
好吧..我认为你必须把它作为一个id传递而不是因为UIImage女巫不起作用: 在你的secondUIViewController.h中:
@property (nonatomic, strong) id image;
在secondViewController.m中
@synthesize image = _image;