问题描述
我正在创建一个框架。
Helper类将是访问框架的ViewController
的入口点,而requestViewController将是使用者。 requestViewController的委托方法没有被调用。
这是我的公共课程的代码,它将在框架中。
import UIKit
protocol FrameworkHelperDelegate : class {
func successResponseFromP4Cars(Response:[String:Any],isSuccess:Bool)
func cancelResponse(response:String)
func discardREsponse(response:String)
}
public class Helper : NSObject {
weak var delegate: FrameworkHelperDelegate?
public static func initiateHelperWith(Apikay:String,VinNumber:String,NavigationController: UINavigationController,isPresent:Bool) {
let storyBoard: UIStoryboard = UIStoryboard(name: "Main",bundle: nil)
let successViewController = storyBoard.instantiateViewController(withIdentifier: "SuccessViewController") as! SuccessViewController
let nvc = UINavigationController(rootViewController: successViewController)
nvc.isNavigationBarHidden = true
if isPresent {
nvc.modalPresentationStyle = .fullScreen
NavigationController.present(nvc,animated: true,completion: nil)
}
else {
NavigationController.pushViewController(successViewController,animated: true)
}
}
func fireSuccessDelegate(response:[String:Any]) {
self.delegate?.successResponseFromFrameowrk(Response: response,isSuccess: true)
}
}
使用框架的ViewController。具有以下代码。
class RequestViewController: UIViewController,FrameworkHelperDelegate {
func successResponseFromP4Cars(Response: [String : Any],isSuccess: Bool) {
print(Response)
}
@IBAction func pushToP4Cars(_ sender: Any) {
Helper.initiateP4CarsWith(Apikay: "This is Random Key",VinNumber: "123456",NavigationController: self.navigationController!,isPresent: false)
let helper = Helper()
helper.delegate = self
}
override func viewDidLoad() {
super.viewDidLoad()
}
从框架的SuccessViewController
调用委托,如下所示。 SuccessViewController
包含一个表格视图,单击一个单元格后,我想将响应发送到RequestViewCotnroller
func tableView(_ tableView: UITableView,didSelectRowAt indexPath: IndexPath) {
let helper = Helper()
let dict = arrRes[(indexPath as NSIndexPath).row]
helper.fireSuccessDelegate(response: ["key1":dict as Any])
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)