2010-09-30 92 views
9

我想要做一些簡單的事情,就像在XCode和IB中向視圖添加標籤一樣,我無法弄清楚如何去做。我在網上找到的所有樣本都是針對較早版本的IB,因此方向不正確。在Interface Builder和XCode中連接UILabel?

我的.xib文件上有一個標籤,在我的Controller.h文件中,我有一個IBOutlet UILabel聲明瞭Property的設置。

在我的Controller.m文件中,我合成了Property。

在Interface Builder中,我不能爲我的LIFE弄清楚如何將我的代碼中的標籤與.xib上的Label關聯起來。 每當我嘗試拖動連接到文件的所有者,唯一顯示的選項是「查看」。

如果我在界面生成器的庫窗口下查看控制器,標籤顯示爲出口下的UILabel。我很確定它曾經是一個「id」類型,但它自動顯示爲UILabel,如果我嘗試添加一個「id」,它也不起作用。

有人能指點我來解釋這個愚蠢的事情嗎?使標籤具有文字應該不是很難。

+0

請張貼Controller.m或者和.h文件 – ennuikiller 2010-09-30 00:45:58

+0

PackViewController.h:http://pastebin.com/ DesS8j50 PackViewController.m:http://pastebin.com/jasum3SB – 2010-09-30 00:59:16

+0

他沒有任何問題聲明iboutlet。他只需要正確連接它。 Hes試圖將標籤連接到僅顯示VIEW的實際文件所有者圖標。 如果你只是看看我發給你的信息,我寫了一堆代碼,它和pselus一樣,但這只是爲了確保你正確地書寫代碼。然後我們進入interfacebuilder,我解釋你需要在帖子中做什麼。檢查下面。謝謝 PK – Pavan 2010-09-30 01:02:06

回答

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這將打開連接框。那麼你會看到你的出路。點擊並將其連接到您的標籤。

+0

使用這種技術看起來好像它會起作用,但現在當我嘗試加載該視圖時,我得到一個「SIGABRT」錯誤,該消息是「該類不是關鍵值編碼 - 關鍵的cardNameLabel」。 – 2010-09-30 01:07:28

+0

我注意到你的代碼中有一個錯誤... 在你的.H文件....你應該添加IBOUTLET屬性後(保留,非原子)IBOUTLET uilabel * cardnamelabel。你只是wronte財產(保留,非原子)uilabel * cardNamelabel。這不是一個iboutlet – Pavan 2010-09-30 01:10:46

+0

我改變了我的代碼來使用你的,除了**,是必需的,在這個世界是什麼? – 2010-09-30 01:11:33

3

確保您的財產線是這樣的:

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

離開(或設置)標籤的類型在Interface Builder UILabel。如果這不起作用,請嘗試文件 - >重新加載界面生成器中的所有類文件。你的代碼看起來不錯,但CardNameLabel應該以小寫'c'開頭。

+1

聲明你的UILabel作爲一個屬性是可選的。 – 2010-09-30 00:59:32

2

試試這個:點擊文件的所有者圖標來選擇它,並轉到督察的身份標籤(4片),並檢查Class設置的值。我的猜測是,它現在設置爲UIViewController

由於有IBOutlet你宣稱類是(或者應該是)的UIViewController一個子類,你需要的類名更改爲子類的名稱(例如,MyController,或無論它目前的名字命名) 。

0

假設你有一個viewController和一個有這個UILabel的xib文件。要連接的步驟的UILabel(也是廈門國際銀行文件)您的viewController是:

1)在頭文件,爲它創建

IBOutlet UILabel *label; 

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

的UILabel對象和屬性,並在synchthesize它實現文件

2)在Interface Builder中打開XIB文件

的「文件的所有者」,然後在彈出窗口下拉列表中選擇的viewController連接您的廈門國際銀行雙擊文件到控制器

3)用鼠標右鍵單擊文件的所有者,在彈出的對話框:

  • 點並拖動旁邊的毛毛(+)「查看」,將其放到查看排
  • 點和阻力毛絨(+)旁邊的「標籤」,並將其放在標籤上查看

=>現在的標籤和連接到您XIB文件視圖控制器

相關問題