我有兩個ViewControllers。如何通過Singleton設置/獲取UIImageView.image?
FirstViewController具有UILabels和UIImageViews。也從它的類生成一個單例。 SecondViewController具有該Singleton的調用,並且應該從FirstViewController獲取UILabels和UIImageView的值。
NSString工作,UILabel不。
例如,訪問的NSString在SecondviewController與「sharedFirstViewController.nsstringvarname」我可以獲取和設置值。 這工作正常!
試圖與的UILabel這樣的一樣:「sharedFirstViewController.uilabelvar.text」我好好嘗試一下可以設置或獲取該UILable的價值。 這不適用!
UI-Objects有什麼特別之處嗎? 如果有人能幫助我,那會很棒。 謝謝!
編輯:
在FirstViewController.h+ (id)sharedFirstViewController;
@property (copy, nonatomic) NSString *path;
@property (strong, nonatomic) IBOutlet UIImageView *pic;
在FirstViewController.m
@synthesize path= _path;
@synthesize pic = _pic;
- (id)init {
if (self = [super init]) {
_pic = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 100, 200)];
}
return self;
}
+ (id) sharedFirstViewController {
static sharedFirstViewController * sharedFirstViewController = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
sharedFirstViewController = [[self alloc] init];
});
return sharedFirstViewController;
}
在SecondViewController.m
#import "FirstViewController.h"
- (void)viewDidLoad
{
FirstViewController * sharedFirstViewController = [FirstViewController sharedFirstViewController];
NSLog(@"this is NSString from FVC: %@" sharedFirstViewController.path); //works
UIImage * picture = [UIImage imageWithContentsOfFile:sharedFirstViewController.path];
sharedFirstViewController.pic.image = picture; // does´t work
}
代碼和具體的錯誤將有助於解決什麼是錯誤的 – wattson12
顯示你的代碼你如何使單身人士類,它的變量 – Tirth