gpt4 book ai didi

ios - WKInterface 按钮不更改标题

转载 作者:可可西里 更新时间:2023-11-01 03:08:10 24 4
gpt4 key购买 nike

我在从通知中回拨后尝试更改按钮的标题,但它根本没有响应。我检查了它不是零并检查了我正在分配的文本,一切都很好。我将属性类型设置为 strong 而不是 weak 但没有成功。

- (void) setButtonTitleFromSelectedSearchResult:(NSNotification *)notif
{

[self popController];

self.sourceMapItem = [[notif userInfo] valueForKey:@"SelectedResult"];

NSLog(@"The Selected Result is: %@", self.sourceMapItem.name);

//Testing
NSLog(@"%@", self.fromButton); // check it's not nil

[self.fromButton setTitle:self.sourceMapItem.name];
}

最佳答案

使用 WatchKit,如果用户界面元素当前不可见,则无法更新。因此,如果您在“顶部”显示了另一个界面 Controller ,则在您关闭显示的 Controller 之前,您无法更新任何显示 Controller 的界面元素。届时,您可以在其 willActivate 方法中安全地更新呈现 Controller 。

SushiGrass 传递方 block 的方法当然是一种有效的方法。然而,在我的测试中,我最终不得不管理多个 block ,并且许多后续 block 逆转了早期排队 block 所完成的(例如,首先将标签的文本更改为“foo”,然后是“bar”,然后是“foo” "再次。虽然这可行,但不是最佳选择。

我建议任何正在开发 WatchKit 应用程序的人都花点时间考虑他们想要如何解释屏幕外(即当前不可见)的界面元素。 willActivate 是您的 friend ,如果您要从一个 Controller 转移到另一个 Controller ,想出一种管理更新的方法是值得的。

为了它的值(value),我已经将很多这种逻辑封装在一个 JBInterfaceController 子类中,它可以为您处理很多这样的事情。通过将其用作您自己的界面 Controller 的基类,您可以简单地在添加的 didUpdateInterface 方法中更新您的元素。不幸的是,我还没有时间编写适当的文档,但头文件和示例项目应该可以帮助您:https://github.com/mikeswanson/JBInterfaceController

关于ios - WKInterface 按钮不更改标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29407221/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com