Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 使用标识符/标记(SWIFT)从UIView获取UITextField_Ios_Swift_Uiview_Uitextfield - Fatal编程技术网

Ios 使用标识符/标记(SWIFT)从UIView获取UITextField

Ios 使用标识符/标记(SWIFT)从UIView获取UITextField,ios,swift,uiview,uitextfield,Ios,Swift,Uiview,Uitextfield,我需要知道如何从ViewController类访问UIView中的特定UITextField 我目前的设置是,我有一个链接到情节提要中视图的ViewController。我在nib中有UIView,它有3个UITextFields。我使用以下代码加载视图: TextFieldView = UINib(nibName: "TextView", bundle: nil).instantiateWithOwner(nil, options: nil)[0] as! UIView self.view.a

我需要知道如何从ViewController类访问UIView中的特定UITextField

我目前的设置是,我有一个链接到情节提要中视图的ViewController。我在nib中有UIView,它有3个UITextFields。我使用以下代码加载视图:

TextFieldView = UINib(nibName: "TextView", bundle: nil).instantiateWithOwner(nil, options: nil)[0] as! UIView
self.view.addSubview(TextFieldView)
for case let textField as UITextField in TextView!.subviews {
    print(textField.text)
}
我可以使用以下代码获取所有三个UITextField及其值:

TextFieldView = UINib(nibName: "TextView", bundle: nil).instantiateWithOwner(nil, options: nil)[0] as! UIView
self.view.addSubview(TextFieldView)
for case let textField as UITextField in TextView!.subviews {
    print(textField.text)
}
我的问题是如何使用某种标识符或标记获取任何特定UITextField的值。假设我有3个UITextField,分别命名为TextField1、TextField2和TextField3。如何获取TextField2的值?

使用viewWithTag选项。 试试这个:

if let theTextField = self.view.viewWithTag(yourTagId) as? UITextField {
        print(theTextField.text)
    }
目标C:

UIView *view = [self.view.viewWithTag:YourTagId];

if([view isKindOfClass:[UITextField class]]
{ NSLog(@"%@", view.text);
}

如果要按类查找,则可以按如下方式循环:

for view in self.view.subviews {
    if let textField = view as? UITextField {
        print(textField.text!)
    }
}
如果您想通过标记查找,则可以使用@Balajikondallayal所述的
viewWithTag

按如下方式设置文本字段的标记:

选择文本字段并设置标记属性

@IBAction func getAllTextFromTextFields(sender: AnyObject) {
    //Get All Values
    for view in self.view.subviews {
        if let textField = view as? UITextField {
            print(textField.text!)
        }
    }
    //Get One By One with Tag
    if let txtField1 = self.view.viewWithTag(1) as? UITextField {
        print(txtField1.text!)
    }

}

希望对您有所帮助。

重复:如何在nib中设置UITextField的标记?您可以将其转换为目标C吗?在您的目标C代码中,它应该是
[self.view view withtag:YourTagId]而不是
[self.view.viewWithTag:YourTagId]我目前有此代码,我需要使用viewWithTag,但我不知道如何在NIB中设置特定UITextField的标记谢谢,我在您发布答案之前就得到了它,但由于您的努力,我给了您复选标记。我感谢你花时间解决我的问题。