2012-11-17 26 views
1

我正在嘗試將Twitter集成添加到我的iOS 6 iPhone應用程序中。我安裝了Social框架,我擁有所有的代碼,但是我無法將代碼連接到我的一個屏幕上的UIButton。我正在使用Storyboard,所以我可以輕鬆地擁有多個屏幕。它不會讓我張貼截圖,所以我希望你能理解我在說什麼。 謝謝!不能將代碼連線到UI對象與故事板? Xcode 4.5

埃文

+0

在連接我的按鈕之前,是否需要將連接線拖到其他地方?我是小白。 :/ – Evan

回答

4

爲了讓你的故事板中創建一個UIButton的一個參考,你需要:

1)鏈接的ViewController的類名(一個將處理的UIButton的行爲)在你的StoryBoard中使用你的ViewController。要做到這一點去故事板,選擇包含你想連接的UI元素的ViewController。然後選擇左側角落中的「身份檢查器」(這是第三個選項)。然後你必須在「class」字段中輸入你的ViewController的類名。

2)然後,您可以使用Xcode 4.5提供的助手編輯器輕鬆地將您的UI元素連接到您的班級。要顯示助理編輯器,請按option + command + return(或轉到查看/助理編輯器/顯示助理編輯器)。一旦顯示了助理編輯器,您必須在StoryBoard中選擇ViewController,並自動向您顯示ViewController類的@interface。

3)現在你所要做的就是在UI元素上持有Control + Click(對於這個例子,我們可以使用UIButton)並拖拽到你的ViewController類的@interface下的助手編輯器中(你會注意到一條藍線從按鈕投影到鼠標的位置)。放下之後,它會顯示一個對話框讓您選擇所需的連接類型,只需保留默認值併爲您的屬性插入一個名稱即可。它應該補上一句:

@property (weak, nonatomic) IBOutlet UIButton *myButton; 

默認情況下,它會給出創建一個插座(IBOutlet中)這只是一種方法來告訴Xcode中選項屬性要創建鏈接到創建的UI元素界面生成器(在這種情況下使用故事板)。擁有UIButton的IBOutlet屬性,您可以訪問其任何公共屬性,請求其狀態或更改它,例如,您可以更改該按鈕的文本。

4)但爲了增加你的按鈕的行爲,你必須創建一個IBAction。您也可以在助手編輯器的幫助下完成此操作。再次,你必須Control + Click並從你的UIButton拖拽另一個連接到你的@interface文件。但是這次你必須在連接類型中選擇「Action」,然後爲它提供一個名稱。

有一點需要注意的是,默認情況下,當您創建一個UI元素的IBAction時,它將爲該元素選擇最常見的事件,就UIButton而言,它是「Touch Up Inside」事件。您可以創建不同的IBAction以響應同一UI元素的不同事件。

所得的@interface文件的代碼應該是這樣的:

// MyViewController.h 

#import <UIKit/UIKit.h> 

@interface MyViewController : UIViewController 

@property (weak, nonatomic) IBOutlet UIButton *myButton; 

- (IBAction)myButtonTouchUpInsideAction:(id)sender; 

@end 

如果你看看你的@implementation文件的底部,你應該能夠看到,返回IBAction爲一種新的方法像這樣的:

- (IBAction)myButtonTouchUpInsideAction:(id)sender 
{ 
    // insert your behaviour here 
} 

在裏面你可以添加你想要當註冊的事件被激發您的UIButton的執行行爲方法的範圍。

要使用IBOutlet中的財產,你只需要像@implementation語句後您的IBOutlet中的名字添加@synthesize聲明:致電

@implementation MyViewController 

@synthesize myButton; 

現在你可以使用你的UIButton屬性:

self.myButton 

希望這會有所幫助!如果不夠清楚,請告訴我。

+0

OMG謝謝!我喜歡那些真正給出問題很好答案的人,並且不要只是走,「呃,你可以試試這個。」這讓我瘋狂。再次感謝! – Evan

+0

我很高興幫助你。我原本使用了一些圖片來支持我的回答,但我沒有特權發佈。隨意添加關於您可能遇到的任何其他問題的更多問題。祝你好運! –