WKInterfaceLabel 未在 WKInterfaceController 中更新 - Swift Apple watch dev

Posted

技术标签:

【中文标题】WKInterfaceLabel 未在 WKInterfaceController 中更新 - Swift Apple watch dev【英文标题】:WKInterfaceLabel not updating in WKInterfaceController - Swift Apple watch dev 【发布时间】:2021-03-23 08:18:37 【问题描述】:

我正在创建一个 Apple Watch 应用,但我似乎无法让更新控制器上的标签的简单操作起作用。

我已经在多个函数中尝试过这个,但它们都没有从它的默认文本更新标签。

我添加了打印语句以确保函数被调用,并且它们按预期打印到控制台。标签引用也是正确的。

class HomeController: WKInterfaceController 

@IBOutlet weak var walkerTitle: WKInterfaceLabel!

override func willActivate() 
    // This method is called when watch view controller is about to be visible to user
    super.willActivate()
    print("didAppear")
    print(User.Player.getTitle())
    walkerTitle.setText(User.Player.getTitle() + " Walker");


override func didAppear() 
    super.didAppear()
    print("didAppear")
    print(User.Player.getTitle())
    walkerTitle.setText(User.Player.getTitle() + " Walker");


override func didDeactivate() 
    // This method is called when watch view controller is no longer visible
    super.didDeactivate()
    print("didDeactivate");



我在控制台旁边附上了一张应用程序的图片(不相关的打印语句被涂白了)。任何帮助将不胜感激:)

如何在控制器上更新标签?

编辑:

我已在此处加载应用程序之前添加了日志:

跳过/Applications/Xcode.app/Contents/Developer/Platforms/WatchOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/watchOS.simruntime/Contents/Resources/RuntimeRoot/usr/lib/dyld_sim 2021-03-23 19:52:21.689294+1030 PDC Hatch WatchKit Extension[718:30700] [default] lookupMainFuncAddressInMachHeader:71: 无效的 Swift 入口点数据 2021-03-23 19:52:21.690275+1030 PDC Hatch WatchKit Extension[718:30700] [default] lookupMainFuncAddressInMachHeader:77: Swift 入口点地址无法确定。 2021-03-23 19:52:21.944316+1030 PDC Hatch WatchKit Extension[718:30700] [default] +[SPRemoteInterface controller:setupProperties:viewControllerID:tableIndex:rowIndex:classForType:]:2719:Unknown property in Interface description (' PartnerImage') 用于控制器 2021-03-23 19:52:21.945384+1030 PDC Hatch WatchKit Extension[718:30700] [default] +[SPRemoteInterface controller:setupProperties:viewControllerID:tableIndex:rowIndex:classForType:]:2719: Unknown property in Interface description (' DailyGoalPercent') 控制器 2021-03-23 19:52:21.945625+1030 PDC Hatch WatchKit Extension[718:30700] [default] +[SPRemoteInterface controller:setupProperties:viewControllerID:tableIndex:rowIndex:classForType:]:2719: Unknown property in Interface description (' AllEggs') 用于控制器

未知属性似乎是我引用但已删除的网点。我不确定为什么它们仍然出现在日志中。

【问题讨论】:

该日志说什么:controller:setupProperties... 等? WKInterfaceLabel 是否在情节提要中设置了属性字符串? @Shadowrun 我不知道为什么我的大脑会忽略这些...我已将它们编辑到我的问题中。它们似乎大多是我在控制器中引用但已删除的网点 @Shadowrun 我在情节提要中将文本设置为“XXXXXXX Walker” - 我不确定这是否是属性字符串 @Shadowrun 我以为我删除了参考网点,但我没有正确执行。通过情节提要删除它们就可以了。谢谢! 【参考方案1】:

我的问题是我在代码中删除了参考出口,但在情节提要中没有。

一旦我删除了出错的参考插座并重新运行应用程序,它就会正确更新。

【讨论】:

以上是关于WKInterfaceLabel 未在 WKInterfaceController 中更新 - Swift Apple watch dev的主要内容,如果未能解决你的问题,请参考以下文章

WKInterfaceLabel 属性字符串在宽度上失败

WatchKit 为标签添加边距

iWatch开发:UI 组件说明

KeyError:“未在索引中找到”-创建的虚拟变量未在索引中找到

ReferenceError:localStorage 未在 Object 中定义

ReferenceError 'model' 未在 mongoose 中定义