当应用程序启动时,我正在尝试运行一个操作。如果field1中没有文本,则操作checkAtStart会显示一个警告;如果field1中有文本,则会隐藏startView。如果分配给一个按钮,checkAtStart工作得很好,但当我尝试使用(void)awakeFromNib运行它时,无论显示什么,警告都会显示,并且startView永远不会隐藏。这可能是我忘记的一些非常简单的事情。如有任何帮助,我们不胜感激!
下面是我的代码:
- (void)awakeFromNib {
[self checkAtStart:self];
}
- (IBAction)checkAtStart:(id)sender
{
if (field1.text == nil || [field1.text isEqualToString:@""]) {
NSString *msg = nil;
msg = nil;
UIAlertView *alert = [[UIAlertView alloc]
initWithTitle:@"Test Message"
message:@"Test Message"
delegate:self
cancelButtonTitle:@"Close"
otherButtonTitles: nil];
[alert show];
[alert release];
[msg release];
}
else
{
startView.hidden = YES;
}
}发布于 2010-04-15 10:39:19
我假设所有这些代码都在某种类型的视图控制器中。
从NIB加载后,-awakeFromNib将被发送到控制器。此时,文本字段中还没有值,除非您将这些值放入NIB文件中。
您可能使用-viewDidLoad或其他视图事件消息将模型中的一些值分配到文本字段中。这就是让你的IBAction在分配给一个按钮时工作的原因。
https://stackoverflow.com/questions/2642319
复制相似问题