我知道这是一个简单的问题但我几个小时都无法理解这里的问题是什么。
enum TypeOfAlert {
case success, error, warning, confirm
}
class MainAlertView: UIViewController {
var mode: TypeOfAlert!
var transitioner : CAVTransitioner
override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) {
self.transitioner = CAVTransitioner()
super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
self.modalPresentationStyle = .custom
self.transitioningDelegate = self.transitioner
setupAlertView()
}
private func setupAlertView() {
print(mode) // result is nil
}
convenience init() {
self.init(nibName:nil, bundle:nil)
}
required init?(coder: NSCoder) {
fatalError("NSCoding not supported")
}
}
我有这个代码来显示alertdialog
按下按钮
打开MainAlertViewlet vc = IFOMainAlertView()
vc.delegate = self
vc.mode = TypeOfAlert.confirm
self.present(vc,animated: true)
但是当我打印或调试var模式时总是为零。为什么?
答案 0 :(得分:2)
您在设置之前已经打印了var模式
答案 1 :(得分:0)
你正试图在初始化时调试,
当你打电话
let vc = IFOMainAlertView()
在调用其余函数之前调用函数init:
vc.delegate = self
vc.mode = TypeOfAlert.confirm
要么为您的类添加一个新的构造函数,将mode
作为参数,或者将mode属性的调试延迟到viewDidLoad
方法