0

我正在为 iPhone 的 Xcode 4.3 目标 iOS5 上工作。

我有视图 B,它使用简单的按钮操作从视图 A 中分离出来。在视图 B 中有文本字段,我需要验证此文本字段输入。验证规则很简单:如果文本字段为空,则 textFieldShouldEndEditing 返回 NO。代码是:

- (BOOL)textFieldShouldEndEditing:(UITextField *)textField
{
    if (![textField.text length]) {
        return NO;
    }
    return YES;
}

这工作正常。但是,如果我没有输入任何内容并且按下“返回”按钮(即弹出视图控制器)返回视图 A,并且我在视图 A 中再次按下该按钮以导航到视图 B,则视图 B 被完全禁用并且我无法编辑文本字段中的任何内容。当验证未实现或始终返回 YES 时,情况并非如此。如果我输入了一些东西,但 textFieldShouldEndEditing 总是返回 NO,我也尝试过;

我跟踪代码并注意到如果控制器弹出,textFieldShouldEndEditing 也会被触发。我认为问题与将 textFieldShouldEndEditing 设置为“是”或“否”有关,但我完全糊涂了。

请帮忙...

4

1 回答 1

0

首先尝试检查视图控制器是否是顶视图控制器:

- (BOOL)textFieldShouldEndEditing:(UITextField *)textField {
    if (self == self.navigationController.topViewController)
        if (textField == self.confirmationCodeField)
            if (textField.text.length < kAuthCodeMinLength)
                return NO;

    return YES; // default
}
于 2012-08-16T10:11:57.767 回答