Ios swift中的框架代表
嗨,我创建了一个带有委托的简单框架,用于将值返回到我的主应用程序 我采取了以下步骤:Ios swift中的框架代表,ios,swift,xcode,frameworks,Ios,Swift,Xcode,Frameworks,嗨,我创建了一个带有委托的简单框架,用于将值返回到我的主应用程序 我采取了以下步骤: 在Xcode中创建了一个框架 将协议创建为公共协议 在主应用程序项目中导入我的框架并成功集成我的协议 但无法从框架中获取价值 框架内 public protocol MyDataSendingDelegateProtocol: NSObject { func sendDataToFirstViewController(myData: String) } public var delegate: MyDataSe
public protocol MyDataSendingDelegateProtocol: NSObject {
func sendDataToFirstViewController(myData: String)
}
public var delegate: MyDataSendingDelegateProtocol? = nil
将值表单框架发送为
delegate?.sendDataToFirstViewController(myData: "hello world")
在主应用程序中
class ViewController: UIViewController, MyDataSendingDelegateProtocol{
func sendDataToFirstViewController(myData: String) {
print("from frame work \(myData)")
}
}
访问我的框架VC
public class OOB_View : UIViewController {
public func registraionView() -> UIViewController {
let storyboard = UIStoryboard.init(name: "main", bundle: Bundle(for: oobRegVc.self))
let homeVC = storyboard.instantiateViewController(withIdentifier: "view") as! oobRegVc
return homeVC
}
}
在框架中修改
注册视图
方法,以接受MyDataSendingDelegateProtocol
类型的委托
参数,然后将其设置为homeVC的
委托
,即
public class OOB_View : UIViewController {
public func registraionView(delegate: MyDataSendingDelegateProtocol) -> UIViewController {
let storyboard = UIStoryboard.init(name: "main", bundle: Bundle(for: oobRegVc.self))
let homeVC = storyboard.instantiateViewController(withIdentifier: "view") as! oobRegVc
homeVC.delegate = delegate
return homeVC
}
}
现在,在您的主应用程序中,调用方法registrationview(委托:)
,如下所示
let oobClass = OOB_View()
let x = oobClass.registraionView(delegate: self)
x.modalPresentationStyle = .fullScreen
self.present(x, animated: true, completion: nil)
上面的代码必须在
ViewController
的某个地方,符合MyDataSendingDelegateProtocol
添加相关代码。@PGDev现在检查我的问题您在哪里将代理设置为ViewController?我不知道在哪里设置..帮助我您如何访问框架的方法?必须存在委托存在的类,对吗?