[英]Connect a UILabel in Interface Builder and XCode?
我正在嘗試做一些簡單的事情,例如在 XCode 和 IB 中向視圖添加標簽,但我不知道該怎么做。 我在網上找到的所有示例都是針對舊版 IB 的,因此說明不正確。
我的 .xib 文件上有一個標簽,在我的 Controller.h 文件中,我有一個 IBOutlet UILabel 聲明了一個屬性設置。
在我的 Controller.m 文件中,我合成了該屬性。
在 Interface Builder 中,我終生無法弄清楚如何將代碼中的標簽與 .xib 上的標簽相關聯。 每當我嘗試將連接拖動到文件所有者時,唯一顯示的選項是“查看”。
如果我查看 Interface Builder 的 Library Window 下的 Controller,標簽在 Outlets 下顯示為 UILabel。 我很確定它曾經是“id”類型,但它會自動顯示為 UILabel,如果我嘗試添加一個“id”,它也不起作用。
有人可以指點我來解釋這個愚蠢的事情嗎? 使標簽具有文本應該不難。
假設您的視圖稱為 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 這將打開連接框。 然后你會看到你的插座。 單擊並將其連接到您的標簽。
確保您的財產線如下所示:
@property (nonatomic, retain) IBOutlet UILabel *label;
在 Interface Builder 中將標簽的類型保留(或設置)為UILabel
。 如果這不起作用,請嘗試 File -> Reload All Class Files in Interface Builder。 您的代碼看起來不錯,但 CardNameLabel 應該以小寫的“c”開頭。
試試這個:單擊 File's Owner 圖標將其選中,然后轉到 Inspector's Identity 選項卡(第四個選項卡)並檢查Class
設置的值。 我的猜測是它當前設置為UIViewController
。
由於具有您聲明的IBOutlet
的類是(或應該是) UIViewController
的子類,因此您需要將類名更改為您的子類的名稱(例如, MyController
或它當前命名的任何名稱)。
假設您有一個 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 文件上的視圖已連接到您的控制器
以下是快速將 UILabel 連接到故事板的方法:
使用頂部的欄,在文件查看器的一側選擇故事板,在另一側選擇視圖控制器。
您已成功將故事板元素鏈接到您的代碼。
您可以按照本教程觀看有關如何將故事板元素連接到代碼的視頻。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.