【发布时间】:2019-11-06 19:12:24
【问题描述】:
我有一个 xib 视图,这个视图包含一个计算器按钮,我这样做是因为我的应用程序需要一个自定义键盘,我的应用程序有一些需要这个键盘的视图 问题是,我如何将数据从视图发送到我的视图控制器? 在我的视图控制器中,我只有一个文本字段和一个带有 xib 自定义类的视图
我用的是 swift 4.2
这是我的 xib 中的代码
import UIKit
class keyboardView: UIView {
@IBOutlet var viewKeyboard: UIView!
var textIntroduced = ""
override init(frame: CGRect) { // for using CustomView in code
super.init(frame: frame)
custom()
}
required init?(coder aDecoder: NSCoder)
{
super.init(coder: aDecoder)
custom()
}
private func custom()
{
Bundle.main.loadNibNamed("keyboard", owner: self, options: nil)
viewKeyboard.frame = self.bounds
viewKeyboard.autoresizingMask = [.flexibleHeight,.flexibleWidth]
for view in viewKeyboard.subviews
{
view.isExclusiveTouch = true
}
addSubview(viewKeyboard)
}
@IBAction func addOne(_ sender: Any) {
textIntroduced += "1"
}
@IBAction func addTwo(_ sender: Any) {
textIntroduced += "2"
}
@IBAction func addThree(_ sender: Any) {
textIntroduced += "3"
}
@IBAction func addFour(_ sender: Any) {
textIntroduced += "4"
}
@IBAction func addFive(_ sender: Any) {
textIntroduced += "5"
}
@IBAction func addSix(_ sender: Any) {
textIntroduced += "6"
}
@IBAction func addSeven(_ sender: Any) {
textIntroduced += "7"
}
@IBAction func addEight(_ sender: Any) {
textIntroduced += "8"
}
@IBAction func addNine(_ sender: Any) {
textIntroduced += "9"
}
@IBAction func addZero(_ sender: Any) {
textIntroduced += "0"
print(textIntroduced)
}
@IBAction func removeNumber(_ sender: Any) {
textIntroduced.removeLast()
}
}
在我的视图控制器中,我只有一个文本字段和自定义类的视图
我想按下任何按钮视图,结果应该写在文本字段中。
【问题讨论】:
-
使用观察者模式,所以视图控制器并监听来自视图的变化
-
通过IB在视图控制器上创建一个UIView对象。建立一个 IBOutlet 连接。更改视图对象的类名。