2011-07-29 54 views
0

我有一個UILabel,當它按下一個按鈕時,它的值會增加一個 - 基本上它會增加一個。有人可以幫我用減號按鈕嗎?這樣,如果用戶不小心按下添加按鈕的次數超過了他們的需要,他們可以減去他們的錯誤。我試過了,但標籤的文字現在設置爲-1。我希望它只是減去一個每次它按下:從UILabel中顯示的整數中減去一個

- (IBAction)subtractButton:(id)sender { 
    static int integerSaved; 
    integerSaved = integer; 
    integerSaved -= 1; 
    [label2 setText:[NSString stringWithFormat:@"%i", integerSaved]]; 
} 

回答

1
-(void)subtract 
{ 
    label2.text = [NSString stringWithFormat:@"%d", [label2.text intValue]-1]; 
} 

此代碼假定您不使用界面生成器,並且您手動鏈接「減」到UIButton。如果您正在使用Interface Builder,請嘗試使用此代碼。

-(IBAction)subtract:(id)sender 
{ 
    label2.text = [NSString stringWithFormat:@"%d", [label2.text intValue]-1]; 
} 

我還沒有測試過這個,但我認爲它應該可以工作。祝你好運!

3

試試這個:

- (IBAction)subtractButton:(id)sender { 
[label2 setText:[NSString stringWithFormat:@"%d",[label2.text intValue] - 1]]; 
} 
+0

好吧我試過這個,但我得到一個錯誤,它指向最後一個「]」之後的-1,它只是說「預期的標識符」。你知道代碼有什麼問題嗎?我無法弄清楚它? – PengOne2

+0

@ PengOne2剛剛更新了我的答案,現在應該可以工作。 –

+0

「NSString」之前有一個額外的括號。把它拿出來,現在應該在NSString上調用intValue。 – James

0

使用UIView實例的值進行算術不是MVC,你應該真的把你的數據模型從你的視圖中分離出來。

公開一個int,NSIntegerNSNumber屬性的某個地方,其中該類專用於保存您的應用程序的數據值。

當某個按鈕發生觸摸事件時,遞增數據屬性並根據屬性中的內容激發更新視圖的通知。或者向酒店添加observer。觀察者然後在屬性值改變時更新視圖。

繼獲得MVC模式後,將獲得UIView的值,將其轉換爲整數,然後將其轉換回字符串,這將是一種更「Apple」式或「iOS」式的做事方式。