2012-11-13 23 views
4

我需要在第一個ViewController的UIImageView中加載不同的背景圖像,稱爲後臺,取決於設置包中切換開關的使用設置。從設置包中檢索切換開關值

在-viewWillAppear在ViewController.m

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
id toggleSwitchValue = [defaults objectForKey:@"PSToggleSwitchSpecifier"]; 
BOOL boolToggle = [toggleSwitchValue boolValue]; 

// setting custom back for viewController 
if (boolToggle == YES) { 
    [self.backGround setImage:[UIImage imageNamed:@"1.png"]]; 
    NSLog(@"YES"); 
} else if (boolToggle == NO) { 
    [self.backGround setImage:[UIImage imageNamed:@"2.png"]]; 
    NSLog(@"NO"); 
} 

我沒有警告,但我不能設置像什麼將被使用。

任何想法解決?

回答

1

確保您的IBOutlet連接正確並使用[背景setImage:]而不是點符號。如果兩者均不起作用,則您的邏輯或設置/讀取userDefault值時出現問題。

+1

我很確定他在這種方法中實例化了他的視圖控制器(除非客觀的c *不是* FIFO?)。可能他沒有實例化他的背景屬性。 – CodaFi

+0

我將所有自定義代碼從這裏移到ViewController.m中的-viewWillAppear,但沒有任何更改。 NSLog顯示我每次都是在其他人的內部。 – Alex

+0

CoDaFi,我有一個IBOutlet用於在代碼和IB中設置的背景UIImageView。剛剛檢查 – Alex

2

確保如果視圖是從筆尖加載的,則在viewDidLoad中或之後修改視圖。

+0

in -viewDidAppear? – Alex

+2

@Alexey viewDidAppear可能沒有問題,儘管viewWillAppear會更傳統。嘗試在if語句之前設置斷點,並在調試器類型「po self.backGround」中設置斷點。 –