使用(void)awakeFromNib

时间:2010-04-15 02:08:47

标签: iphone

我正在尝试在应用程序启动时运行操作。如果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;
 }
}

1 个答案:

答案 0 :(得分:2)

我假设所有这些代码都在某种视图控制器中。

从pIB加载后,

-awakeFromNib将被发送到控制器。此时,除非您将这些值放在NIB文件中,否则文本字段中没有值。

您可能使用-viewDidLoad或其他视图事件消息将模型中的某些值分配到文本字段中。这就是当你的IBAction被分配到一个按钮时,它正在发挥作用。