Osa*_*eem 5 button uiview uinavigationcontroller ios swift
我有一个视图作为 navigationController 的子视图放置,以填充整个显示。在此视图上,我有一个带有两个按钮的子视图。“删除并完成”。然后它还有一个日期选择器。datePicker 可以工作,但是,Remove 和 Done 按钮不会触发操作函数。
按钮:
var setButton: UIButton = {
var button = UIButton(type: .system)
button.setTitle("Done", for: .normal)
button.tintColor = .white
button.addTarget(self, action: #selector(handleReminderSetBtn), for: .touchUpInside)
return button
}()
var cancelButton: UIButton = {
var button = UIButton(type: .system)
button.setTitle("Remove", for: .normal)
button.tintColor = .white
button.addTarget(self, action: #selector(handleReminderCancelBtn), for: .touchUpInside)
return button
}()
Run Code Online (Sandbox Code Playgroud)
导航控制器中的主要 blackView:
viewOverLay.addSubview(cardreminder1)
viewOverLay.frame = CGRect(x: 0, y: 0, width: screenSize.width, height: screenSize.height)
viewOverLay.backgroundColor = UIColor.black.withAlphaComponent(0.3)
self.navigationController?.view.addSubview(viewOverLay)
Run Code Online (Sandbox Code Playgroud)
CardReminder1 是 UIView,我有两个按钮。
我认为这两个按钮的 addTarget 方法中的目标存在一些问题。可能是什么问题?
你不应该初始化setButton和cancelButton这种方式初始化。
引用Apple文档Setting a Default Property Value with a Closure or Function:
\n\n\n\n\n如果您使用闭包来初始化属性,请记住在执行闭包时实例的其余部分尚未初始化。这意味着您无法从闭包中访问任何其他属性值,即使这些属性具有默认值。\n 此外:
\n
您也不能使用隐式 self 属性,或调用任何 instance\xe2\x80\x99s 方法,因此问题就在这里:
\n\naddTarget(self...)\nRun Code Online (Sandbox Code Playgroud)\n\n因此,要解决此问题,您应该在完全初始化addTarget后移动按钮初始化(或移动 ) 。CardReminder1
| 归档时间: |
|
| 查看次数: |
1982 次 |
| 最近记录: |