我無法以編程方式更改標籤中的文本。如何以編程方式更改在nib文件中創建的UIView中的標籤?
當我運行以下代碼時,NSLog會顯示「將myLabel設置爲= Hello World!」,但屏幕上的標籤不會更改。
UIViewOverlay *overlayWindow;
overlayWindow = [[[NSBundle mainBundle] loadNibNamed:@"UIViewOverlay" owner:self options:nil] objectAtIndex:0];
[self addSubview:overlayWindow];
[overlayWindow setMyLabel:@"Hello World!"];
我的NIB文件中有一個300x300的窗口,一些標籤和按鈕。 有一個標籤,它連接到插座中的myLabel。 UIView顯示,只是該文本不能以編程方式更改。
UIViewOverlay.h
#import <UIKit/UIKit.h>
@interface UIViewOverlay : UIView {
IBOutlet UILabel *myLabel;
}
- (void)setMyLabel:(NSString *) label;
@end
UIViewOverlay.m
#import "UIViewOverlay.h"
@implementation UIViewOverlay
- (void)setMyLabel:(NSString *) label {
myLabel.text = label; // THIS LINE IS NOT WORKING! :-(
NSLog(@"Setting myLabel to = %@", label); // This line is working.
}
@end
在此先感謝..
你說得對'setMyLabel'方法。我將該方法更改爲'ssetMyLabel',它工作。謝謝! – AReality
好抓住。使用「set」作爲除了顯式設置器之外的任何方法的前綴都會引起麻煩。當我發現自己要這樣做時,我會迅速將其改爲其他內容,如「分配」。當我第一次看到它時,使用「sset」看起來像一個錯字。對於稍後閱讀此文的人,他們應該意識到這一點。 – Jim
是的..我把它改爲「打印」而不是「設置」,讀得更好.. – AReality