2013-11-01 55 views
1

我有兩個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 

} 
+0

代碼和具體的錯誤將有助於解決什麼是錯誤的 – wattson12

+0

顯示你的代碼你如何使單身人士類,它的變量 – Tirth

回答

0

我敢肯定你忘了G在單例類的init方法中分配給UIImageview * pic。那是因爲你的代碼正在運行,但沒有任何崩潰和警告。如果你調試你的代碼,你會得到imageview內存分配0X0。覈實。

- (id)init { 
    if (self = [super init]) { 
     _pic = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 100, 200)]; 
    } 
    return self; 
} 

在FirstViewController.m類中寫上述方法。他們不需要在UIImageView * pic之前編寫IBOutlet,因爲您在生成單例實例時沒有提及您的viewcontroller nib。無論何時在xib中處理UI時都使用IBOutlet。

+0

嘗試過,但也沒有得到它的作品。爲什麼我需要這個用於UIImageView,而NSString沒有這個工作? – user2355509

+0

在sharedFirstViewController.pic.image上設置斷點=圖片線跟蹤singlton類變量分配並打印pic的描述並顯示調試器輸出。 – Tirth

+0

用init方法顯示你的代碼你試過什麼使用更新問題。 – Tirth

相關問題