如何在没有标签的情况下以编程方式访问UILabel?

时间:2015-07-08 05:39:03

标签: objective-c storyboard uilabel

我是iOS开发的新手,在iPad应用程序上工作,拥有包含大量UI元素的XIB,所以我想以编程方式创建它们并从这些标签和TextFields获取数据。 那么如何不使用标签访问这些字段,有没有办法访问它们?

4 个答案:

答案 0 :(得分:2)

此代码获取视图控制器中的所有标签,如果要查找所有文本字段,请用UITextfield替换UILabel

UILabel *lbl = [[UILabel alloc]initWithFrame:CGRectMake(100, 100, 100, 30)];
[lbl setText:@"Hello World"];
[self.view addSubview:lbl];
for(id x in [self.view subviews])
{
    if([x isMemberOfClass:[UILabel class]])
    {
        NSLog(@"%@",x);
    }
}

答案 1 :(得分:0)

我不知道你想做什么,但在这里,

您可以通过以下方式获取标签或TextField的属性和/或值:

for(UILabel *lbl in self.view.subviews) {
    // get labels properties here
    NSLog(@"Label : %@", lbl.text);

}

for(UITextField *tf in self.view.subviews) {
    // get the textfield properties here
    NSLog(@"TextField : %@", tf.text);
}

答案 2 :(得分:0)

在.h文件中声明它,如下面的

UILabel * userName;

并直接使用它的名称(userName)在.m文件中访问它,这里不需要Tag 即

NSLog(@"userName %@",userName);

答案 3 :(得分:0)

在你的.h文件中,按照以下方式制作IBOutlet:

@property (weak, nonatomic) IBOutlet UILabel *lbl;

在你的笔尖或故事板中。右键单击View Controller。您将获得一个列表,从Outlet中选择“lbl”(在这种情况下)并将其拖到“lbl”并连接。您现在可以通过在视图控制器中的任意位置写self.lbl来访问此标签