我假设你已经初始化了
snackbar
a内部
class func
self
代表您的班级
DetailsInfoViewController
快餐店
let controller: DetailsInfoViewController = ...
let snackbar = TTGSnackbar(message: "Attendance Update !", duration: .long, actionText: "SEND") { [weak controller] (snackbar) in
controller?.uncheck()
print("snack bar Action")
}
如果这对你没有帮助,请在你创建的地方张贴函数代码
快餐店
UPD:
在代码更改最少的情况下,以下解决方案应该可以工作:
class DetailsInfoViewController: UIViewController {
var snackbarCount = 0
lazy var snackbar = TTGSnackbar(message: "Attendance Update !", duration: .long, actionText: "SEND") { (snackbar) in
self.uncheck()
print("snack bar Action")
}
func uncheck() {
print("snackbar uncheck function")
snackbarCount -= 1
checkSnackBar()
}
func checkSnackBar() {}
}
当你的班级需要时,你发现了非常棘手的情况
但是
这
变量在我们准备使用之前初始化
自己
快餐店
自己
lazy var
但我
强烈地
TTHSnackbar author's example
class DetailsInfoViewController: UIViewController {
@IBAction func showSnackbarButtonTapped(_ sender: UIButton) {
let snackbar = TTGSnackbar(message: "TTGSnackBar !", duration: .middle, actionText: "Action!") { (snackbar) in
self.uncheck()
print("snack bar Action")
}
snackbar.show()
}
}
当它显示在视图上时,它将被此视图保留。
UPD#2
要一次只显示一个Snackbar,您可以这样写:
class DetailsInfoViewController: UIViewController {
private weak var currentSnackbar: TTGSnackbar?
@IBAction func showSnackbarButtonTapped(_ sender: UIButton) {
if let snackbar = currentSnackbar {
snackbar.dismiss()
currentSnackbar = nil
}
let snackbar = TTGSnackbar(message: "TTGSnackBar !", duration: .middle, actionText: "Action!") { (snackbar) in
self.uncheck()
print("snack bar Action")
}
currentSnackbar = snackbar
snackbar.show()
}
}