2012-11-05 76 views
0

我有一個下一個按鈕,當我到達數組的最後一個結果時,我想要消失,並且當我處於數組的第一個結果時,我希望我的上一個按鈕消失。當找到只有一個結果時,我已經想出瞭如何使它們消失。ios next和previous按鈕

聯繫人是數組。

下一個按鈕:

 //button look 
if (contacts != nil) { 
    if ([contacts count] > 1) [self.view addSubview:nextButton]; 

上一頁按鈕:

 //button look 
if (contacts != nil) { 
    if ([contacts count] > 1) [self.view addSubview:previousButton]; 

我已經試過這

if ([contacts count] < (index-1)) [self.view addSubview:nextButton]; 

我得到這個錯誤「有序指針和整數( 'NSUInterger' 之間的比較(aka'unsigned int')和'char *(*)(const char *,int)')「按鈕就在那裏,它不會消失它會得到最後的結果。

任何幫助將不勝感激。

+1

nil只是告訴它沒有更多的元素被包含在數組中。 U不能用來檢查...嘗試objectAtIndex:0和objectAtIndex:[contacts count] - 1. – lakesh

+0

我不明白你在做什麼。如果'[contacts count] <(index-1)''你試圖隱藏'nextButton'嗎? –

+0

如果聯繫人計數<索引-1,則會顯示。 – JSpencerB

回答

0

聽起來像索引是NSUInterger。 count是一個int,NSUInteger是對無符號整數的typedef。嘗試改變索引,無論你將它設置爲int還是將其轉換爲int,然後將其用於比較。

有關按鈕的一部分,如果你的邏輯是正確的,你正試圖從視圖中刪除「Next按鈕」,您可以隱藏或從視圖中,像這樣將其刪除:

// To remove button 
if ([contacts count] < (index-1)) [nextButton removeFromSuperview]; 

//To hide button 
if ([contacts count] < (index-1)) nextButton.hidden = YES; 
+0

將索引更改爲int並且錯誤消失。現在它只是不會讓按鈕做他們應該做的事情。 – JSpencerB

+0

好的,讓我編輯我的答案,看看我能否進一步幫助你。 –

+1

工作。非常感謝!我改變了一點,雖然 if([contacts count] JSpencerB

0

你永遠不會從superView中刪除它,所以它永遠不會消失。您應該使用該按鈕的隱藏屬性,即

[nextButton setHidden:NO]; 

或者是,如果您想隱藏它。

錯誤大概來自索引實體,你是否稱作爲NSUInterger?將其改爲uint或int。 (剛剛發佈晚了一點,但是這已經在其他的答案被提及:d)

0
if ([contacts objectAtIndex:[contacts count]-1]) 
{ 
    [self.view addSubview:nextButton]; 
} 
if([contacts objectAtIndex:0) 
{ 
[self.view addSubview:previousButton]; 
} 

希望這有助於...零隻是告訴它有被包含在陣列中沒有更多的元素。 U不能用它來檢查..

相關問題