我使用WatchKit InterfaceController中的数据来填充表格,该表格完美无缺.
我正试图找出在WatchKit ComplicationController中获取相同数据的最佳方法.
目前,在InterfaceController中,使用dIDReceiveUserInfo传入数据:
func session(session: WCSession,dIDReceiveUserInfo userInfo: [String : AnyObject]) { if let beachValue = userInfo["Surf"] as? String { places.append(Place(dataDictionary: ["Surf" : surfValue])) } else { print("Something went wrong") }}
我是否需要在我的ComplicationController中调用相同的WCSession方法并再次获取整个数据,或者是否有更简单的方法来访问同一数据以便在ComplicationController中使用?
任何帮助赞赏.谢谢!
编辑:
我的表功能:
func maketable() { // Per SO let myDelegate = WKExtension.sharedExtension().delegate as! ExtensionDelegate let accessVar = myDelegate.places self.rowtable.setNumberOfRows(accessVar.count,withRowType: "rows") for (index,evt) in accessVar.enumerate() { if let row = rowtable.rowControllerAtIndex(index) as? tableRowController { row.mLabel.setText(evt.evMat) } else { print(“No”) } }}解决方法
// Get the complication data from the extension delegate.let myDelegate = WKExtension.sharedExtension().delegate as! ExtensionDelegatevar data : Dictionary = myDelegate.myComplicationData[ComplicationCurrentEntry]!
从Apple’s Doc开始,只是在扩展委托中存储复杂化所需数据的一个示例,了解如何以单例形式轻松访问它.对“myComplicationData”的引用是Dictionary的示例,默认情况下不是ExtensionDelegate中的参数.
要么将您自己的类设置为单例,它会为您的手表保存数据,如下所示:
// Access by calling:// Model.sharedModel.modelVal1class Model { static let sharedModel = Model() var modelVal1: float! var modelVal2: String!}
或者使用扩展委托作为您的单身人士,并将您的属性添加到其类中,如下所示.这将允许您访问在ExtensionDelegate中创建的任何变量.
// ExtensionDelegate.swiftclass ExtensionDelegate: NSObject,WKExtensionDelegate { var dataVar1: float! var dataVar2: String! var myDictionary: [String: String]!}// ComplicationController.swiftimport WatchKitclass ComplicationController: NSObject,CLKComplicationDataSource { func someMethod() { let myDelegate = WKExtension.sharedExtension().delegate as! ExtensionDelegate // Here is an example of accessing the float variable let accessVar = myDelegate.dataVar1 let myDict = myDelegate.myDictionary }}
使用任何一种方法都有助于将您的数据保存在一个位置,这样您就可以随时从手表扩展程序中的任何类访问它.
总结以上是内存溢出为你收集整理的ios – WatchKit复杂功能:从扩展委托中获取复杂数据全部内容,希望文章能够帮你解决ios – WatchKit复杂功能:从扩展委托中获取复杂数据所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)