我正在尝试将 Twitter 集成添加到我的 iOS 6 iPhone 应用程序中。我安装了社交框架,我拥有所有代码,但我无法将代码连接到我的一个屏幕上的 UIButton。我正在使用情节提要,因此我可以轻松拥有多个屏幕。它不会让我发布屏幕截图,所以我希望你能理解我在说什么。谢谢!
埃文
为了在 Storyboard 中创建 UIButton 的引用,您需要:
1) 将 ViewController 的类名(将处理 UIButton 行为的类名)与 StoryBoard 中的 ViewController 链接。为此,请转到情节提要,选择包含要连接的 UI 元素的 ViewController。然后选择左下角的“Identity Inspector”(这是第三个选项)。然后你必须在“类”字段中输入你的 ViewController 的类名。
2) 然后您可以使用 Xcode 4.5 提供的 Assistant Editor 轻松地将您的 UI 元素连接到您的类。要显示助理编辑器,请按option + command + return
(或转到查看/助理编辑器/显示助理编辑器)。一旦显示了助理编辑器,您必须在 StoryBoard 中选择您的 ViewController,它会自动向您显示您的 ViewController 类的 @interface。
3) 现在你所要做的就是抓住Control + Click
UI 元素,(对于这个例子,我们可以使用 UIButton)并在你的 ViewController 类的 @interface 下的 Assistant Editor 中拖动(你会注意到一条蓝线被投影了)从按钮到鼠标位置)。放下后,它会显示一个对话框,让您选择所需的连接类型,只需保留默认值并为您的属性插入一个名称。它应该添加如下内容:
@property (weak, nonatomic) IBOutlet UIButton *myButton;
默认情况下,它会为您提供创建 Outlet (IBOutlet) 的选项,这只是告诉 Xcode 您正在创建的属性链接到在 Interface Builder 中创建的 UI 元素的一种方式(在本例中使用情节提要)。拥有 UIButton 的 IBOutlet 属性,您可以访问它的任何公共属性,询问它的状态或更改它,例如,您可以更改按钮的文本。
4) 但是为了给你的按钮添加行为,你必须创建一个 IBAction。您也可以在助手编辑器的帮助下执行此操作。同样,您必须Control + Click
将另一个连接从您的 UIButton 拖动到您的 @interface 文件。但是这一次您必须在连接类型中选择“操作”,然后为其提供名称。
需要注意的一点是,默认情况下,当您创建 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
希望这可以帮助!如果还不够清楚,请告诉我。