时间:2015-09-17 10:48:06

标签: objective-c class watchkit nsthread watch-os-2

我有两个名为InterfaceControllerLoadInterfaceController的课程。

我从InterfaceController致电uiChange的{​​{1}} function

LoadInterfaceController

调用了InterfaceController *interfaceController = [InterfaceController alloc]; //[interfaceController performSelectorOnMainThread:@selector(uiChange) withObject:nil waitUntilDone:true]; [interfaceController uiChange]; ,但function中的用户界面未被修改。

InterfaceController

如果- (void)uiChange { NSLog(@"uiChange was called"); //... make changes to the UI ... } 来自function来自function InterfaceController,则会分别更改用户界面。

我尝试在class上调用uiChange(正如here所述),但用户界面没有响应。我如何指定用于main thread UI的线程?

1 个答案:

答案 0 :(得分:1)

How can I set the length of entered text in a combobox?相同的问题。不要自己初始化控制器,让Watch在用户流程发生时执行。

我建议在您的架构中添加一个Pub / Sub模式。 NSNotificationCenter类是实现一个的好例子。它允许应用程序的各个部分相互通信,并且它也经常用于控制器通信。

here一个很好的AppDelegate和控制器之间的通信示例,我最近回答了另一个问题。但如果你真的需要我可以采用它为你的例子。