我给 UIViewController 添加了一个扩展来添加一个关闭按钮
extension UIViewController {
func addCloseButton() {
let button = UIBarButtonItem(image: #imageLiteral(resourceName: "bar_close"),
landscapeImagePhone: nil,
style: .done,
target: self,
action: #selector(UIViewController.dismiss(animated:completion:)))
navigationItem.leftBarButtonItem = button
}
}
Run Code Online (Sandbox Code Playgroud)
当我点击栏按钮时,我会直接崩溃到 AppDelegate。任何提示?似乎与选择器有关。
你不能在这里使用dismiss(animated:completion:)作为选择器,因为它需要两个参数 bool 和closure 和 bar button action 将 args 作为 UIBarButtonItem 传递,这会导致应用程序崩溃。所以像这样改变你的代码。
extension UIViewController {
func addCloseButton() {
let button = UIBarButtonItem(image: #imageLiteral(resourceName: "rightgreen"),
landscapeImagePhone: nil,
style: .done,
target: self,
action: #selector(onClose))
navigationItem.leftBarButtonItem = button
}
@objc func onClose(){
self.dismiss(animated: true, completion: nil)
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1764 次 |
| 最近记录: |