【发布时间】:2020-02-11 14:27:55
【问题描述】:
嘿,我在主控制器中显示一个控制器 (A) 的演示样式(不是推送),我想在关闭此 (A) 控制器后点击按钮并按下另一个控制器 (B),这种情况发生在主控制器中.我正在为这种情况使用协议。有什么想法吗?代码如下。`
//this is dismiss button action
var segueDelegate: segueFromController?
@objc func dismissController() {
self.dismiss(animated: true) {
self.segueDelegate?.segueFromController()
}
//and this one is protocol function in main controller
func segueFromController() {
let contProfile = ContViewController(collectionViewLayout: UICollectionViewFlowLayout())
navigationController?.pushViewController(contProfile, animated: true)
}
// and I am making "self" this protocol in main controller's didload
let aCont = AController()
override func viewDidLoad() {
super.viewDidLoad()
AController.segueDelegate = self
}
// protocol
protocol segueFromController {
func segueFromController()
}
// this is presenting (A) controller code in main page
func openController() {
let preController = AController()
preController.modalPresentationStyle = .fullScreen
self.present(preController, animated: true, completion: nil)
}
【问题讨论】:
-
你遇到了什么问题?
-
当我点击关闭按钮时,它正在关闭控制器并打开主控制器,但不推(B)控制器
-
segueFromController 函数正在调用?
-
没有。这就是问题
标签: swift swift-protocols pushviewcontroller presentviewcontroller