iOS5:在先前返回后重新访问时禁用视图,并且TextFieldShoulDediting设置为NO

iOS5:在先前返回后重新访问时禁用视图,并且TextFieldShoulDediting设置为NO,ios5,Ios5,我正在为iPhone的Xcode 4.3目标iOS5做这项工作 我有视图B,它是使用简单的按钮操作从视图A分离出来的。在视图B中有文本字段,我需要验证此文本字段输入。验证规则很简单:如果文本字段为空,则文本字段应取消编辑返回编号。代码为: - (BOOL)textFieldShouldEndEditing:(UITextField *)textField { if (![textField.text length]) { return NO; } retu

我正在为iPhone的Xcode 4.3目标iOS5做这项工作

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

- (BOOL)textFieldShouldEndEditing:(UITextField *)textField
{
    if (![textField.text length]) {
        return NO;
    }
    return YES;
}
这个工作很好。但是,如果我没有输入任何内容,并且按下“后退”按钮(弹出视图控制器)返回视图A,并且我再次按下视图A中的按钮以导航到视图B,则视图B被完全禁用,并且我无法编辑文本字段中的任何内容。当验证未实施或总是返回YES时,情况并非如此。如果我输入了一些东西,我也尝试了,但是TextFieldShoulDediting总是返回NO

我跟踪代码并注意到,如果控制器弹出,textFieldShouldEndEditing也会被触发。我认为问题与将textFieldShouldEndEditing设置为YES或NO有关,但我完全混淆了


请帮助…

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

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

    return YES; // default
}
-(BOOL)textField应取消编辑:(UITextField*)textField{
if(self==self.navigationController.topViewController)
if(textField==self.confirmationCodeField)
if(textField.text.length
Log.d textfield length,当您第二次进入视图B时,textfield.text length为0,因此它应该返回“否”以启用编辑,对吗?我在想,如果由于弹出/返回而触发textfield shouldendediting,是否可以找出一种状态,在这种情况下,我总是可以返回YES。在viewDidLoad中显式调用setEnable如何?或视图将在视图B中加载