微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

自定义委托协议未被调用

如何解决自定义委托协议未被调用

我正在创建一个框架。 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 举报,一经查实,本站将立刻删除。