当前位置: 首页 > 面试题库 >

IBOutlet和IBAction

仰雅昶
2023-03-14
问题内容

在Xcode和Interface Builder中使用IBOutlet和IBAction的目的是什么?

如果我不使用IBOutlets和IBAction,有什么区别吗?

迅速:

@IBOutlet weak var textField: UITextField!

@IBAction func buttonPressed(_ sender: Any) { /* ... */ }

目标C:

@property (nonatomic, weak) IBOutlet UITextField *textField;

- (IBAction)buttonPressed:(id)sender { /* ... */ }

问题答案:

IBActionIBOutlet是定义为表示可以在Interface Builder中引用的变量和方法的宏。

IBAction解析为voidIBOutlet解析为什么,但他们表示,以Xcode和接口生成器,这些变量和方法可以在Interface
Builder被用来链接UI元素在你的代码。

如果您根本不打算使用Interface
Builder,那么您的代码中就不需要它们了,但是如果要使用它,则需要为IBActionIB和IBOutlet对象指定方法。将在IB中使用。



 类似资料:
  • 今天我试着从Obj-C出发,去Swift,我正在阅读文档。我试图用Swift创建一个简单的IBOutlet,但它总是给我这些错误。 必需的init(coder-aDecoder:NSCoder){fatalError(“init(coder:)尚未实现”)} 这段代码会不断弹出: 但当我添加一个!马克,它运行时没有像这样的错误 同样的事情也发生在iBaction上。。。

  • 问题内容: 在Interface Builder中无法将声明为@IBOutlet的委托属性连接到–根本无法建立连接。 这是代码 由于使用了快速协议,因此IBOutlet属性不能具有非对象类型,不知道为什么不起作用。 还有其他人遇到过这样的事情吗? 问题答案: 从Xcode发行说明中: 当插座的类型是协议时,Interface Builder不支持连接到Swift文件中的插座。 解决方法:将插座的类

  • 问题内容: 我特定类的所有后代都要有一个实例变量。所以我的父母班有。我也想在sublclass中使用它,但是作为一个。我该怎么做呢? 我添加了相同的名称,并对两个变量声明都添加了weak。但是我收到有关“无法用存储的属性覆盖”的错误。 我应该怎么做?是否有可能不必实例化超类的版本,因为我只想将其用于子类化? 问题答案: 只需在超类中添加修饰符即可。

  • 问题内容: 我有一个详细视图控制器,我想将标签文本设置为使用indexPath行从数组中获取的值。 我一直收到一个致命错误:展开一个可选值时意外发现nil。我尝试切换到,但每次都遇到相同的错误。 我使用相同的代码行来更改单元格的标签文本,没有任何错误,但是对于空白视图中心的此标签,我似乎无法正确理解?有什么需要改变的想法吗? 顺便说一句,详细视图控制器中的标签是 问题答案: 您无法访问第的,因为他

  • 问题内容: 我有一个storyviewcontroller,它的视图上有对象。我需要更改UILabel(在storyviewcontroller中)上的文本,并将视图加载到数组上。我已将IBOutlet连接到storyviewcontroller中的标签。 我已经创建了storyviewcontroller类的对象,并且能够访问其变量。但是,在创建storyviewcontroller的对象之后,

  • 我有一个复杂的iPad视图,我通过几个视图控制器来管理它。我以前(在iOS6/xcode4.5之前)是通过在代码中分配视图控制器来实现这一点的,并通过主视图的链接将各种视图连接到它们。 我想做的是使用新的UIContainerView容器视图将视图控制器嵌入到情节提要文件中。我似乎无法将嵌入式视图控制器的IBOutlet链接到主控制器。 有可能这样做吗?或者通过标签或代码中的某些东西检索嵌入式控制