gpt4 book ai didi

ios - 使用 Swift 和委托(delegate)从 subview 更新父 View 上的标签

转载 作者:行者123 更新时间:2023-11-30 14:08:02 26 4
gpt4 key购买 nike

我正在尝试根据 subview (inputPopUp.swift)中的buttonPressed事件更新父 View (JL1EX3.swift)中的标签。我知道我需要实现委托(delegate)/协议(protocol)才能实现这一点,但我不知道如何做到这一点。这是我的 subview 中的代码:

weak var parentView: JL1EX3!
var char: String!
var buttonPressed = String()

//Setter
func setChar(var thisChar: String){
char = thisChar
}

//Getter
func getChar()-> String{
if (buttonPressed == "addButton"){
char = "+"
}
if (buttonPressed == "minusButton"){
char = "-"
}
if (buttonPressed == "divideButton"){
char = "/"
}
if (buttonPressed == "multiplyButton"){
char = "*"
}
println(char)
return char
}


@IBAction func addButtonPressed(sender: AnyObject) {
buttonPressed = "addButton"
setChar("+")
getChar()
self.parentView.tapLabel.text = getChar() //Does not work - returns nil
self.removeAnimate()
}

非常感谢您的帮助!!

最佳答案

weak var parentView: JL1EX3!

不分配父 View 。这行代码所做的只是声明一个属于 JL1EX3 类的变量。它不会创建对 JL1EX3 类的任何特定实例的任何引用。

首先,我强烈建议您不要使用隐式展开。最好声明你的父 View ,例如

weak var parentView: JL1EX3?

其次,确保分配 parentView 变量。您应该在初始化 inputPopUp 后执行此操作。

例如:

let myPopUp = inputPopUp()
myPopUp.parentView = self //this assigns the parentView. Otherwise it is nil

希望这有帮助

关于ios - 使用 Swift 和委托(delegate)从 subview 更新父 View 上的标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32102334/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com