2015-03-25 79 views
2

嘿,我正在研究一個小應用程序,它根據日期選擇器的當前狀態更改UIButton的文本。它會顯示「它是哪天?」或「它會是哪一天?」。但是,使用xcode 6.3 beta時,UIButton SetTitle方法似乎不存在。相反,我嘗試將一個字符串分配給titleLabel.txt,但這不會更改按鈕文本。以編程方式更改iOS中不工作的UIButton的標題Xcode-Beta 3

方法如下:

(IBAction) changeButton:(id)sender { 
NSDate *currentDate = [self.datePicker date]; 
NSDate *now = [NSDate date]; 

if(currentDate<now){ 
    self.whatButton.titleLabel.text = @"What day was it?"; 
} 
else { 
    self.whatButton.titleLabel.text = @"What day will it be?"; 
} 

我已經看到,方法的setTitle將是一個可能的解決方案,但發現該庫可能已經改變。任何建議將不勝感激!

回答

4

使用下面的代碼來設置不同狀態按鈕的標題,如果正常

[self.yourButton setTitle:@"Default Title" forState:UIControlStateNormal]; 

,如果你已經點擊了您的按鈕選中狀態時,它必須是

[self.yourButton setTitle:@"Selected Title" forState:UIControlStateSelected]; 

,如果你再次點擊您的按鈕取消選擇狀態時,它必須是

[self.yourButton setTitle:@"Selected Title" forState:UIControlStateDisable]; 

和許多其他國家,你可以在我的程序按鈕

5

你應該設置你的標題是這樣的:

[self.whatButton setTitle:@"What day was it?" forState:UIControlStateNormal]; 
+0

的每一個國家設置不同的文本,發送者是dateSelector。我希望更改UIButton以響應接收'Value Changed'事件。 – taptrick 2015-03-25 02:43:06

+0

不用擔心,只需將其更改爲上面的代碼行即可。 – 2015-03-25 03:18:43

0

嘗試改變你做的日期比較的方式 -

-(IBAction)changeButton:(id)sender { 

NSDate *currentDate = [self.datePicker date]; 
NSDate *now = [NSDate date]; 

NSString *titleString = ([currentDate timeIntervalSinceReferenceDate] < [now timeIntervalSinceReferenceDate]) ? @"What day was it?" : @"What day will it be?"; 
[self.whatButton setTitle:titleString forState:UIControlStateNormal]; 
} 
0

感謝您對您的建議。第一個建議有點偏離基礎,因爲它不是發件人的標題,我想改變。第二個建議是我將來使用的一個好主意。我結束了這個解決謎語自己:

- (IBAction) changeButton:(id)sender { 
    NSDate *currentDate = [self.datePicker date]; 
    NSDate *now = [NSDate date]; 
    UIButton *tempBtn = (UIButton *)self.whatButton; 
    UIControlState state = tempBtn.state; 
    if([currentDate compare:now] == NSOrderedAscending){ 
     [tempBtn setTitle:@"What day was it?" forState:state]; 
    } 
    else { 
     [tempBtn setTitle:@"What day will it be?" forState:state]; 
    } 

}` 
+1

您可以將'(id)sender'改爲'(UIButton *)sender'並避免使用'tempBtn'變量 – Paulw11 2015-03-25 04:55:31

相關問題