我使用的singleton类只包含一个传递的值。然后我尝试添加另一个。
#import <Foundation/Foundation.h>
@interface GlobalValueContainer : NSObject {
NSString *passedText;
NSString *myPassedPictureName;
}
@property (nonatomic, strong) NSString* passedText;
@property (nonatomic, strong) NSString* myPassedPictureName;
+ (GlobalValueContainer *) sharedStore;
@end
#import "GlobalValueContainer.h"
@implementation GlobalValueContainer;
@synthesize passedText;
@synthesize myPassedPictureName;
static GlobalValueContainer *sharedStore = nil;
+ (GlobalValueContainer *) sharedStore {
@synchronized(self){
if (sharedStore == nil){
sharedStore = [[self alloc] init];
}
}
return sharedStore;
}
@end
从第一个视图开始,我尝试设置myPassedPictureName
-(IBAction)setPicture:(id)sender{
myPicture = @"Hus";
GlobalValueContainer* localContainer = [GlobalValueContainer sharedStore];
localContainer.myPassedPictureName = myPicture;
}
在第二个视图中我想设置一个具有该名称的图像视图(+ png)
- (void)viewDidLoad
{
[super viewDidLoad];
//Store* myStore = [Store sharedStore];
GlobalValueContainer* localContainer = [GlobalValueContainer sharedStore];
myPassedPictureName = localContainer.myPassedPictureName;
myPicture.image = [UIImage imageNamed:myPassedPictureName];
whatFile.text = myPassedPictureName;
//object.imageView.image = [UIImage imageNamed:@"downloadedimage.png"];
}
图片没有显示。我还尝试添加UIlabel并设置应该传递的字符串。但它也变成了空白。
当我使用“passedText”传递文本时,它可以正常工作。当我添加第二个NSString时,没有任何反应?。
首先要做的事情。任何人都可以看到错误(仍然在这里学习对象:),这是我尝试操纵UIImageView
的正确方法。我想使用myPassedPictureName
根据按下的按钮在多个UIView
上设置图片。
期待您的意见。
答案 0 :(得分:0)
如果变量“myPassedPictureName”是指向文件的URL,则您无法使用此方法:
[UIImage imageNamed:myPassedPictureName];
你应该使用
NSData *data = [[NSData alloc] initWithContentsOfURL:myPassedPictureName];
UIImage *image = [[UIImage alloc] initWithData:data];