我尝试将一个接口控制器添加到故事板,将其Custom Class设置为WKInterfaceController子类,在模拟器中启动应用程序并导航到指定的接口控制器.
当我这样做时,我收到以下错误:
WatchKit错误 - 无法找到接口控制器类'TestController'来实例化
如果我尝试与控制器交互(例如尝试启动其按钮的操作),我会收到以下错误:
- ***********ERROR - [SPRemoteInterface _interfaceControllerClientIDForControllerID:] interfaceControllerID的clientIdentifier :( null)未找到
- ***********ERROR - [SPRemoteInterface _interfaceControllerClientIDForControllerID:] clientControllerID的clientIdentifier:找不到7120004
我尝试按照此答案的建议设置模块名称,但这仍然给我以下错误:
- WatchKit错误 - 无法找到接口控制器类'_TtC29myWatchApp_WatchKit_App19TestController'来实例化
- ***********ERROR - [SPRemoteInterface _interfaceControllerClientIDForControllerID:] interfaceControllerID的clientIdentifier :( null)未找到
- ***********ERROR - [SPRemoteInterface _interfaceControllerClientIDForControllerID:] interfaceControllerID的clientIdentifier:找不到6E20004
我有一个基本的watchkit应用程序,可以加载基于页面的3个界面控制器导航.这很好用,但我想触发一个动作来删除页面控件,并基本上恢复到应用程序第一次加载时出现的原始InterfaceController.
// load page based control, with 3 views. this works ok
[WKInterfaceController reloadRootControllersWithNames:@[@"pageController1",@"pageController2",@"pageController3"]
contexts:@[@"data1",@"data2",@"data3"]];
// attempt to reload original interface controller, identified by storyboard id
[WKInterfaceController reloadRootControllersWithNames:@[@"myInterfaceController"] contexts:@[@{}]];
Run Code Online (Sandbox Code Playgroud)
基于页面的导航删除,原始导航在短微调器后加载.但是它无法正常运行,原始操作会导致此错误.
Extension[6766:123665] *********** ERROR
-[SPRemoteInterface _interfaceControllerClientIDForControllerID:] clientIdentifier for interfaceControllerID:(null) not found
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来干净地重新加载原始的InterfaceController?
编辑,2/19
似乎还有一些其他操作也会导致此错误.例如,如果segue到第二个InterfaceController然后popController返回,则经常出现错误.它始终与此函数的辅助调用相关.
[WKInterfaceController reloadRootControllersWithNames: contexts:]
Run Code Online (Sandbox Code Playgroud)
EDIT2,3/18
如前所述,通过执行seguePush,popController,然后尝试reloadRootControllersWithNames,这可以100%重现.
如果事先没有完成seguePush/popController,那么reloadRootControllersWithNames将正常工作.
这种情况似乎是这个bug的多个>单个多实例的补充.
我每次运行项目时都会收到此错误,并尝试导航到另一个屏幕.
Unable to find interface controller class 'HelpInterfaceController' to instantiate
Run Code Online (Sandbox Code Playgroud)
我正在使用我所知道的正确
- (IBAction)HelpButton {
[self presentControllerWithName:@"help" context:nil]; }
名称:名称help也与标识符中的名称相同.那么我出错了什么或哪里?
我尝试构建我的手表应用程序,但我不断收到错误消息
createViewController:className:properties:contextID:info:gestureDescriptions:
clientIdentifier:]:2916: Critical failure. Simulating crash: Condition failed:"NO".
Couldn't instantiate class _TtC12STracker23InfoInterfaceController
Run Code Online (Sandbox Code Playgroud)
我不得不在某个时候重命名我的项目,根据我的研究,这可能是问题的原因。我从头开始重新创建 Interface.storyboard 和 InfoInterfaceController 但它没有帮助。