协议实现方法未在Swift中调用

时间:2019-09-12 05:09:52

标签: ios swift

我正在使用Xcode 10.3。我有不调用哪个方法的协议。怎么了?

这是我的代码。

  1. 我的第一个具有协议..

    的视图控制器
    Field
  2. 我的第二个视图控制器

    protocol MyProtocol: class {
       func doGetUpdateInfo(valu1:String,value2:String);
    }
    
    class Class_A : UIViewController{
        weak var myprotocolDelegate:MyProtocol? = nil;
    
        override func viewDidLoad() {
            super.viewDidLoad()
    
            myprotocolDelegate?.doGetUpdateInfo(account_no:value1, account_title: value2)
        }
    }
    

这是怎么回事?

1 个答案:

答案 0 :(得分:0)

请参见以下示例。您正在为A创建一个新类,但不会被调用。您需要提供当前课程的参考

protocol MyProtocol: class {
 func doGetUpdateInfo(valu1:String,value2:String);
}

class Class_A : UIViewController{
weak var myprotocolDelegate:MyProtocol? = nil;

override func viewDidLoad() {
    super.viewDidLoad()

    myprotocolDelegate?.doGetUpdateInfo(account_no:value1, account_title: value2)
}
func navigateToClassB() {
     let classb = Class_B() 
     classb.class_a = self
     self.navigationController?.pushViewcontroller(classb, animated:true)
}
 }

b类应该是

class Class_B: UIViewController,UpdateBeneficiaryProtocol {
var class_a : Class_A?

override func viewDidLoad() {
    super.viewDidLoad()
    class_a.myprotocolDelegate = self;
}

func doGetUpdateInfo(value1: String, value2: String) {
    print("not calling****")
}
}

按方法NavigationToClassB中的显示推送控制器Class_b。 如果您仍然在这里发表评论,我会为您提供帮助。