9

我正在尝试做一些简单的事情,比如在 XCode 和 IB 中的视图中添加标签,但我不知道该怎么做。我在网上找到的所有示例都是针对旧版本的 IB 的,因此方向不正确。

我的 .xib 文件上有一个标签,在我的 Controller.h 文件中我有一个 IBOutlet UILabel 声明并设置了属性。

在我的 Controller.m 文件中,我合成了该属性。

在 Interface Builder 中,我终生无法弄清楚如何将代码中的标签与 .xib 上的标签相关联。每当我尝试将连接拖动到文件所有者时,显示的唯一选项是“查看”。

如果我查看 Interface Builder 的 Library Window 下的 Controller,Label 在 Outlets 下显示为 UILabel。我很确定它曾经是一种“id”类型,但它会自动显示为 UILabel,如果我尝试添加一个“id”,它也不起作用。

有人能指点我到某个地方来解释这个愚蠢的事情吗?使标签具有文本应该不难。

4

5 回答 5

8

假设您的视图称为 ExampleView。单击文件所有者,然后按 ⌘+4。这将突出显示身份框。确保类名与您的类名相同。

保存并关闭 Interface Builder,然后进入 Xcode 并验证:

// ExampleViewController.h
#import <UIKit/UIKit.h>

@class ExampleViewController;
@interface ExampleViewController : UIViewController {

    IBOutlet UILabel *label;
}

@property (retain, nonatomic) IBOutlet UILabel *label;

@end

在您的 .m 文件中:

// ExampleViewController.m
#import "ExampleViewController.h"

@implementation ExampleViewController

@synthesize label;

然后保存 xcode 文件并打开您的 ExampleView。将标签拖到视图上。您不应该将该标签连接到文件所有者。

相反,您单击文件所有者。HIT ⌘+2 这将打开连接框。然后你会看到你的出口。单击并将其连接到您的标签。

于 2010-09-30T01:00:13.993 回答
3

确保您的属性线如下所示:

@property (nonatomic, retain) IBOutlet UILabel *label;

保留(或设置)标签的类型,就像UILabel在 Interface Builder 中一样。如果这不起作用,请尝试 File -> Reload All Class Files in Interface Builder。您的代码看起来不错,但 CardNameLabel 应该以小写的“c”开头。

于 2010-09-30T00:58:22.547 回答
2

试试这个:单击 File's Owner 图标将其选中,然后转到 Inspector's Identity 选项卡(第 4 个选项卡)并检查设置的值Class。我的猜测是它当前设置为UIViewController.

由于IBOutlet您声明的类是(或应该是) 的子类UIViewController,因此您需要将类名更改为您的子类的名称(例如MyController,或任何它当前命名的名称)。

于 2010-09-30T00:59:12.807 回答
2

以下是如何将 UILabel 快速连接到您的故事板:

  1. 单击图标Xcode 中的图标。如果您使用的是旧版本的 Xcode,请使用窗口右上角的维恩图。

  2. 使用顶部的栏,在文件查看器的一半上选择您的故事板,在另一侧选择您的视图控制器。

  3. 按下 control,单击您希望为其创建 IB 出口/操作的 UI 元素,然后将其拖到 View Controller 文件中: 在此处输入图像描述
  4. 为您的 IBOutlet/Action 选择您的偏好: 在此处输入图像描述

您已成功地将情节提要元素链接到您的代码。

您可以按照本教程观看有关如何将情节提要元素连接到代码的视频。

于 2020-04-09T22:05:00.487 回答
0

假设您有一个 viewController 和一个带有 UILabel 的 xib 文件。连接 UiLabel(也是 xib 文件)您的 viewController 的步骤是:

1) 在头文件中,为其创建 UiLabel 对象和属性

IBOutlet UILabel *label;

@Property (Nonatomic, retain) IBOutlet UILabel *label;

并将其同步到实现文件中

2) 在 Interface Builder 中打开您的 xib 文件

双击“文件的所有者”,然后在弹出窗口的下拉列表中选择 viewController 以将您的 xib 文件连接到控制器

3)右键单击文件的所有者,在弹出对话框中:

  • 指向并拖动“视图”旁边的毛绒 (+) 并将其拖放到视图行
  • 指向并拖动“标签”旁边的毛绒 (+) 并将其放在视图上的标签上

=> 现在 xib 文件上的标签和视图已连接到您的控制器

于 2010-09-30T09:01:59.093 回答