自定义委托协议未被调用

问题描述

我正在创建一个框架。 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 (将#修改为@)