类 之间的 WatchKit 线程问题

WatchKit thread issue between classes

我有两个 类,名为 InterfaceControllerLoadInterfaceController

我正在从我的 LoadInterfaceController:

呼叫 InterfaceControlleruiChange function
InterfaceController *interfaceController = [InterfaceController alloc];
//[interfaceController performSelectorOnMainThread:@selector(uiChange) withObject:nil waitUntilDone:true];
[interfaceController uiChange];

调用了function,但InterfaceController中的UI没有被修改。

- (void)uiChange {
    NSLog(@"uiChange was called");
    //... make changes to the UI ...
}

如果 function 是从 function 调用的,该 function 源自 InterfaceController class,则 UI 将分别更改。

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

相同的问题。不要自己初始化控制器,让 Watch 在用户流发生时进行初始化。

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

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