我有一個問題,如何在 UIView() 中實作自定義后退導航按鈕的創建。我有一個包含 collectionView 的主控制器,單擊任何單元格將轉到包含 tableView 的第二個控制器。我在 tableView 標題中創建了一個單獨的自定義視圖,我在其中添加了標簽、圖片、按鈕。我需要在自定義視圖中單擊后退按鈕時,它將轉到主控制器。可以如何實施?我只以編程方式制作應用程式 - (無情節提要)
CustomView.swift
lazy var backButton: UIButton = {
let button = UIButton(type: .system)
let image = UIImage(systemName: "chevron.left")
button.setImage(image, for: UIControl.State())
button.tintColor = .white
button.isHidden = true
button.addTarget(self, action: #selector(goToBack), for: .touchUpInside)
button.translatesAutoresizingMaskIntoConstraints = false
return button
}()
@objc func goToBack() {
}
uj5u.com熱心網友回復:
首先在CustomView. 然后從方法呼叫這個callback閉包。goToBack()
class CustomView: UIView {
var backButtonTapped: (() -> Void)?
lazy var backButton: UIButton = {
let button = UIButton(type: .system)
let image = UIImage(systemName: "chevron.left")
button.setImage(image, for: UIControl.State())
button.tintColor = .white
button.isHidden = true
button.addTarget(self, action: #selector(goToBack), for: .touchUpInside)
button.translatesAutoresizingMaskIntoConstraints = false
return button
}()
@objc func goToBack() {
backButtonTapped?()
}
}
在 UIViewController你初始化 this的地方CustomView,給出閉包的動作。
let view = CustomView()
view.backButtonTapped = { [weak self] in
self?.navigationController?.popViewController(animated: true)
}
uj5u.com熱心網友回復:
您需要為此創建一個委托。在您的 CustomView 中創建一個屬性 weak var 委托:ButtonDelegate
protocol ButtonDelegate: class {
func onTap()
}
并且您持有 CustomView 的 ViewController 確實實作了該協議并在實作的 onTap() 方法中執行 navigationController.popViewController() 。
在您的 CustomView goToBack() 方法中呼叫 delegate?.onTap()。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/463812.html
上一篇:在UITableViewCell中放置陰影在Swift中不起作用
下一篇:突出顯示活動錨鏈接
