2011-12-28 78 views
0

我有一個UIImageView,我想粘貼一張圖片,但哪張圖片取決於navigationItem.titleUIImageView不顯示圖片

所以這裏是代碼:

- (void)viewDidLoad 
{ 
    if(self.navigationItem.title == @"Кружка") 
    { 
     giftImage.image = [UIImage imageNamed:@"cup2.png"]; 
    } 
    [super viewDidLoad]; 
} 

沒有錯誤,只是不工作。怎麼了?

我改變了我的代碼如下:

- (void)viewDidLoad 
{ 

    [super viewDidLoad]; 
    if(self.navigationItem.title == @"Кружка") 
    { 
     giftImage.image = [UIImage imageNamed:@"cup1"]; 

    } 


    [self.view addSubview:giftImage]; 
    // Do any additional setup after loading the view from its nib. 
} 

回答

3
if(self.navigationItem.title == @"Кружка") 

不要比較這樣的字符串。這是檢查指針是否相等,而不是字符串相等。使用

if([self.navigationItem.title isEqualToString: @"Кружка"]) 

由於兩個指針不相等,所以圖像未設置。使用斷點和檢查。如果條件是否返回true或false ... 如果返回false,然後用self.title

更換self.navigationItem.title再試一次,如果返回true

+0

哦,這就對了!我總是忘記了這個方法isEqulToString。 謝謝! – Cosinus 2011-12-28 18:23:15

+0

你並不孤單,50%的代表來自重新回答這個問題;) – jrturton 2011-12-28 18:24:18

+0

嗯,真的嗎?這安慰我:) 再次感謝! – Cosinus 2011-12-28 18:29:56

0

我認爲約定是調用[超級viewDidLoad中]在viewDidLoad中的開始。

有幾個關卡

  1. 調試如果if塊裏面來了。
  2. 檢查giftImage是否作爲子視圖添加。
+0

謝謝!我將我的代碼更改爲: - (void)viewDidLoad { [super viewDidLoad]; (self.navigationItem.title == @「Кружка」) { giftImage.image = [UIImage imageNamed:@「cup1」]; } [self.view addSubview:giftImage]; } 但仍然無法正常工作。對不起,我怎麼做你告訴我的第一點? – Cosinus 2011-12-28 18:20:23

1

調試那麼:

1. Recheck cup2.png spellings (Note that image extension is mandatory) 
2. Image names are case sensitive. so recheck letter case in spellings 
3. This image must present in xcode resources.