I tried adding an interface controller to a storyboard, setting its Custom Class to a WKInterfaceController subclass, launched the app in the simulator and navigated to the specified interface controller.
我尝试将一个接口控制器添加到一个故事板中,将它的自定义类设置为一个WKInterfaceController子类,在模拟器中启动应用程序,并导航到指定的接口控制器。
When I do so, I get the following error:
当我这样做时,我得到以下错误:
WatchKit error - unable to find interface controller class 'TestController' to instantiate
WatchKit错误——无法找到要实例化的接口控制器类'TestController'
If I try to interact with the controller (e.g. try launching its button's action), I get the following error:
如果我尝试与控制器交互(例如尝试启动按钮的动作),我会得到以下错误:
- *********** ERROR -[SPRemoteInterface _interfaceControllerClientIDForControllerID:] clientIdentifier for interfaceControllerID:(null) not found
- *********** **错误-[SPRemoteInterface _interfacecontrollerentidforcontrollerid:] interfacecontrollid:(null)未找到
- *********** ERROR -[SPRemoteInterface _interfaceControllerClientIDForControllerID:] clientIdentifier for interfaceControllerID:7120004 not found
- *********** *错误-[SPRemoteInterface _interfaceControllerClientIDForControllerID:] interfacecontrollid的clientifier:7120004未找到
I tried setting the module name as recommended on this answer, but that still gives me the following errors:
我试着按照这个答案的建议设置模块名,但还是有以下错误:
- WatchKit error - unable to find interface controller class '_TtC29myWatchApp_WatchKit_App19TestController' to instantiate
- WatchKit错误——无法找到要实例化的接口控制器类“_TtC29myWatchApp_WatchKit_App19TestController”
- *********** ERROR -[SPRemoteInterface _interfaceControllerClientIDForControllerID:] clientIdentifier for interfaceControllerID:(null) not found
- *********** **错误-[SPRemoteInterface _interfacecontrollerentidforcontrollerid:] interfacecontrollid:(null)未找到
- *********** ERROR -[SPRemoteInterface _interfaceControllerClientIDForControllerID:] clientIdentifier for interfaceControllerID:6E20004 not found
- *********** *********** *********** *********** *********** *********** *********** ***********
14 个解决方案
#1
31
I got this error after renaming the WatchKit target, but finally realized: if you rename your WatchKit targets, you'll have to go through the interfaces in Interface Builder and make sure the module names for each of them is renamed as well.
在重命名WatchKit目标之后,我得到了这个错误,但最终我意识到:如果您重命名WatchKit目标,您必须在Interface Builder中检查接口,并确保每个接口的模块名也被重命名。
You can do this by selecting an interface controller, clicking the Identity Inspector (or command-option-3), delete the module name, then tab away. It will automatically be filled in with the new target name. That did it for me!
您可以通过选择接口控制器、单击标识检查器(或命令选项-3)、删除模块名称、然后选项卡离开来实现这一点。它将自动填充新的目标名称。这对我有好处!
#2
16
This error came up for me because I was not properly handling the didDeactivate
message. My deactivated controller was still receiving messages via MMWormhole
. Once I severed that connection, the error went away. It turns out that in the simulator all the deactivated interface controllers hang around in memory, so you have to carefully make sure they don't get any more messages of any kind. I don't know if this happens on the Watch itself, but of course we should assume so.
出现这个错误是因为我没有正确地处理didDeactivate消息。我的失活控制器仍然通过MMWormhole接收消息。一旦我切断了这种联系,错误就消失了。事实证明,在模拟器中所有的失活接口控制器都挂在内存中,所以你必须小心地确保它们不会再收到任何类型的消息。我不知道这是否发生在手表本身,但我们当然应该这样假设。
#3
9
I spent way too much time with this issue, but finally figured what it was. The Apple Watch has basically two navigation patterns:
我在这个问题上花了太多的时间,但最终还是弄明白了。苹果手表基本上有两种导航模式:
Hierarchical:
等级:
[self pushControllerWithName:@"controllerName" context:nil];
Page-based:
页面:
[[self class] reloadRootControllersWithNames:@[@"controller1",@"controller2"] contexts:nil];
According to apple:
根据苹果公司:
You cannot combine hierarchical and page-based interface styles. At design time, you must choose the style that best suits your app’s content and design for that style.
您不能组合分层和基于页面的接口样式。在设计时,您必须选择最适合应用程序内容的样式,并针对该样式进行设计。
So, the issue is that I was mixing both and that leads to undefined behavior like:
所以,问题是我把两者混在一起导致了未定义的行为,比如:
*********** ERROR -[SPRemoteInterface _interfaceControllerClientIDForControllerID:] clientIdentifier for interfaceControllerID:(null) not found
*********** **错误-[SPRemoteInterface _interfacecontrollerentidforcontrollerid:] interfacecontrollid:(null)未找到
Hope this helps other developers
希望这对其他开发人员有所帮助
EDIT:
编辑:
Just a suggestion that worked for me as a workaround, when using Page-based navigation you can still present modal controllers (just saying):
这是我的一个建议,在使用基于页面的导航时,你仍然可以显示模态控制器(只是说):
[self presentControllerWithName:@"controllerName" context:nil];
#4
6
This bug seems to be closely related to this one: Unable to see custom classes in Interface Builder drop down.
这个bug似乎与这个bug密切相关:无法在Interface Builder中看到自定义类。
When I originally tried solving this, I had to manually type in the module name since the drop down was empty for both the custom classes and the module names.
当我最初尝试解决这个问题时,我必须手动输入模块名,因为自定义类和模块名的下拉列表都是空的。
Examining the storyboard's source code reveals one workaround.
检查故事板的源代码揭示了一个解决方案。
Interface controllers that work look like this:
工作的接口控制器如下:
<controller id="AgC-eL-Hgc" customClass="InterfaceController"
customModule="myWatchApp_WatchKit_App" customModuleProvider="target">
Interface controllers that don't work lack the customModule
and/or the customModuleProvider
attribute(s).
不工作的接口控制器缺少customModule和/或customModuleProvider属性。
Therefore, a workaround is to manually add those missing attributes to the storyboard file by right-clicking it and choosing Open As > Source Code.
因此,一个解决方案是通过右键单击并选择Open作为>源代码来手动添加那些丢失的属性到故事板文件中。
A longer-term solution may be to fix the storyboard so that custom classes appear in the drop downs (see linked question for some potential fixes).
较长期的解决方案可能是修复故事板,使自定义类出现在下拉列表中(有关一些潜在的修复,请参阅链接问题)。
Update:
更新:
Other interface controllers that also work use customModule="myWatchApp_WatchKit_Extension"
(notice the _Extension
vs. _App
difference) and don't need the customModuleProvider
attribute.
其他的接口控制器也可以使用customModule=“myWatchApp_WatchKit_Extension”(注意_Extension和_App的区别),并且不需要customModuleProvider属性。
#5
3
For me, this appears to be a false negative. I tried all suggested solutions, but then proved it's an Apple error by creating a brand new Apple Kit project, making one change to the Glance (adding an image) and getting the error. I've logged the following error with Apple in their Bug Reporter.
对我来说,这似乎是一个错误的否定。我尝试了所有建议的解决方案,但通过创建一个全新的Apple Kit项目来证明这是一个苹果的错误,对其进行一次修改(添加一个图像)并得到错误。我在他们的Bug报告中记录了苹果的以下错误。
Title
标题
Receive clientIdentifier for interfaceControllerID not found when navigating to Glance
当导航到浏览时,没有发现interfaceControllerID的clientIdentifier。
Description
描述
I receive the following error which appears to be a false negative when navigating to a Glance in a watchOS 2.0 project. I reproduced this by creating a brand new Apple Kit project, making one change to the Glance (adding an image) and getting the error.
当我浏览到watchOS 2.0项目时,我收到了以下错误,看起来是一个错误的否定。我通过创建一个全新的Apple Kit项目来复制这一过程,使一个变化(添加一个图像)和得到错误。
Steps to reproduce
步骤来复制
- Clear all data in both watch and iOS simulators.
- 清除手表和iOS模拟器中的所有数据。
- In XCode, create a new WatchKit application including complication and glance.
- 在XCode中,创建一个新的WatchKit应用程序,包括complex和glance。
- Run and see no issues.
- 运行并查看没有问题。
- Add a png to your image assets.
- 向映像资产添加png。
- Add a UIImageView to the Glance in Interface Builder.
- 在界面构建器中添加一个UIImageView。
- Run the extension in the watch simulator.
- 在手表模拟器上运行扩展。
- Enable the Glance in the iOS Watch companion app.
- 启用iOS手表伴侣应用程序的一瞥。
- Navigate to the Glance in the watch simulator.
- 导航到手表模拟器中的一瞥。
- Note the follow error in your log.
- 注意日志中的以下错误。
2015-07-16 08:35:10.663 restaurant-reports WatchKit App Extension[78301:2211560] *********** ERROR -[SPRemoteInterface _interfaceControllerClientIDForControllerID:] clientIdentifier for interfaceControllerID:3118001E not found
2015-07-16 08:35 .663餐厅报告WatchKit应用扩展[78301:2211560]*********** *错误-[SPRemoteInterface _interfaceControllerClientIDForControllerID:]尚未找到interfacecontrollid:3118001E的clientIdentifier
Expected result
预期的结果
No false negatives should appear in log
日志中不应出现错误否定
Actual result
实际结果
False negative appears in log
错误否定出现在日志中
Watch OS version (build)
看操作系统版本(建立)
2.0 (13S5293f)
2.0(13 s5293f)
They gave me bug id 21853566.
他们给了我错误id 21853566。
#6
2
I think you forgot to use the storyboardID to your class. That's what i get from your error.
我想你忘了在课堂上使用故事板了。这就是我从你的错误中得到的。
#7
2
I had this problem when I renamed the WatchKit target. When I renamed it back the error went away.
我在重新命名WatchKit target时遇到了这个问题。当我重新命名它时,错误消失了。
#8
2
The better way to do a push/pop controller is running that piece of code into the main thread so:
执行push/pop控制器的更好方法是将这段代码运行到主线程中:
dispatch_async(dispatch_get_main_queue(), ^{
[self pushControllerWithName:@"controllerIdentifier" context:data];
});
dispatch_async(dispatch_get_main_queue(), ^{
[self popToRootController];
});
dispatch_async(dispatch_get_main_queue(), ^{
[self popController];
});
Apple documentation says about the three methods:
苹果文件中提到了这三种方法:
Always call this method from your WatchKit extension’s main thread.
总是从WatchKit扩展的主线程调用此方法。
#9
1
You need to verify the view controller is in your compile source here: Select Project > Select Watchkit Extension Target > Build Phases > Compile Sources
您需要验证视图控制器在这里的编译源中:选择Project >选择Watchkit扩展目标>构建阶段>编译源
#10
0
It's not anything you're doing wrong. This is already a known issue. See my answer here. Please dupe the following radar on Apple's Bug Reporting System to help raise the priority to get this fixed.
这不是你做错的事。这是一个已知的问题。看到我的答案。请在苹果的Bug报告系统上使用以下雷达,以帮助提高修复的优先级。
#11
0
I was having same issues after the recent 8.2 release. I had to go to each one of my InterfaceControllers and adjust its custom class module to whatever was shown as an option or "none".
在最近的8.2版之后,我也遇到了同样的问题。我必须访问每个InterfaceControllers,并将其自定义类模块调整为显示为选项或“none”的任何模块。
#12
#13
0
The controller’s Module name should be the same name as your Project’s root name (top left blue Xcode document icon name).
控制器的模块名称应该与项目的根名称(左上角的蓝色Xcode文档图标名称)相同。
Your dynamic interface’s module name should be that same name and your destination controller’s module name (i.e. the one you're pushing to) should also be the same name.
您的动态接口的模块名应该是相同的名称,您的目标控制器的模块名(即您要推送的模块名)也应该是相同的名称。
Btw, in case you’re new or not sure I thought I’d throw this in because you might be thinking your class is wrong or something. Your Dynamic Interface Controller doesn’t have to point to the default Xcode NotificationController.swift class. Of course you can create a custom class i.e. FriendRequestNotificationController
顺便说一下,如果你是新手或者不确定我想把这个扔进去因为你可能认为你的课是错的。您的动态接口控制器不需要指向默认的Xcode NotificationController。斯威夫特类。当然,您可以创建一个自定义类,例如FriendRequestNotificationController
To troubleshoot you can add this code into awakeWithContext method to see what controllers have what IDs.
要进行故障排除,可以将此代码添加到awakeWithContext方法中,以查看哪些控制器具有哪些id。
override func awakeWithContext(context: AnyObject?) {
super.awakeWithContext(context)
if let vcID = self.valueForKey("_viewControllerID") as? NSString {
print("Controller: \(vcID)")
}
// Configure interface objects here.
}
#14
0
- If you are using page-based navigation (from where you are handling push or presenting a new view controller) then please present the new controller instead of pushing it.
- 如果您正在使用基于页面的导航(从这里处理push或显示新的视图控制器),那么请显示新的控制器,而不是push它。
- Since first screen which if page based (like page view controller) screens, then it by default uses pushing of next page or previous page on swiping left and right and it becomes root window view of your WatchKit app. In this case if you push another controller on click from inside controls then it will not recognise the push but it will recognise present new controller. Hence please do follow the rules if possible.
- 以来第一个屏幕,如果页面(如页面视图控制器)屏幕上,那么在默认情况下使用推下一页或上一页刷,就根窗口视图WatchKit应用。在这种情况下如果你把另一个控制器上单击“从内部控制就不会认识到推动但它会承认目前新控制器。因此,如果可能的话,请遵守规则。
#1
31
I got this error after renaming the WatchKit target, but finally realized: if you rename your WatchKit targets, you'll have to go through the interfaces in Interface Builder and make sure the module names for each of them is renamed as well.
在重命名WatchKit目标之后,我得到了这个错误,但最终我意识到:如果您重命名WatchKit目标,您必须在Interface Builder中检查接口,并确保每个接口的模块名也被重命名。
You can do this by selecting an interface controller, clicking the Identity Inspector (or command-option-3), delete the module name, then tab away. It will automatically be filled in with the new target name. That did it for me!
您可以通过选择接口控制器、单击标识检查器(或命令选项-3)、删除模块名称、然后选项卡离开来实现这一点。它将自动填充新的目标名称。这对我有好处!
#2
16
This error came up for me because I was not properly handling the didDeactivate
message. My deactivated controller was still receiving messages via MMWormhole
. Once I severed that connection, the error went away. It turns out that in the simulator all the deactivated interface controllers hang around in memory, so you have to carefully make sure they don't get any more messages of any kind. I don't know if this happens on the Watch itself, but of course we should assume so.
出现这个错误是因为我没有正确地处理didDeactivate消息。我的失活控制器仍然通过MMWormhole接收消息。一旦我切断了这种联系,错误就消失了。事实证明,在模拟器中所有的失活接口控制器都挂在内存中,所以你必须小心地确保它们不会再收到任何类型的消息。我不知道这是否发生在手表本身,但我们当然应该这样假设。
#3
9
I spent way too much time with this issue, but finally figured what it was. The Apple Watch has basically two navigation patterns:
我在这个问题上花了太多的时间,但最终还是弄明白了。苹果手表基本上有两种导航模式:
Hierarchical:
等级:
[self pushControllerWithName:@"controllerName" context:nil];
Page-based:
页面:
[[self class] reloadRootControllersWithNames:@[@"controller1",@"controller2"] contexts:nil];
According to apple:
根据苹果公司:
You cannot combine hierarchical and page-based interface styles. At design time, you must choose the style that best suits your app’s content and design for that style.
您不能组合分层和基于页面的接口样式。在设计时,您必须选择最适合应用程序内容的样式,并针对该样式进行设计。
So, the issue is that I was mixing both and that leads to undefined behavior like:
所以,问题是我把两者混在一起导致了未定义的行为,比如:
*********** ERROR -[SPRemoteInterface _interfaceControllerClientIDForControllerID:] clientIdentifier for interfaceControllerID:(null) not found
*********** **错误-[SPRemoteInterface _interfacecontrollerentidforcontrollerid:] interfacecontrollid:(null)未找到
Hope this helps other developers
希望这对其他开发人员有所帮助
EDIT:
编辑:
Just a suggestion that worked for me as a workaround, when using Page-based navigation you can still present modal controllers (just saying):
这是我的一个建议,在使用基于页面的导航时,你仍然可以显示模态控制器(只是说):
[self presentControllerWithName:@"controllerName" context:nil];
#4
6
This bug seems to be closely related to this one: Unable to see custom classes in Interface Builder drop down.
这个bug似乎与这个bug密切相关:无法在Interface Builder中看到自定义类。
When I originally tried solving this, I had to manually type in the module name since the drop down was empty for both the custom classes and the module names.
当我最初尝试解决这个问题时,我必须手动输入模块名,因为自定义类和模块名的下拉列表都是空的。
Examining the storyboard's source code reveals one workaround.
检查故事板的源代码揭示了一个解决方案。
Interface controllers that work look like this:
工作的接口控制器如下:
<controller id="AgC-eL-Hgc" customClass="InterfaceController"
customModule="myWatchApp_WatchKit_App" customModuleProvider="target">
Interface controllers that don't work lack the customModule
and/or the customModuleProvider
attribute(s).
不工作的接口控制器缺少customModule和/或customModuleProvider属性。
Therefore, a workaround is to manually add those missing attributes to the storyboard file by right-clicking it and choosing Open As > Source Code.
因此,一个解决方案是通过右键单击并选择Open作为>源代码来手动添加那些丢失的属性到故事板文件中。
A longer-term solution may be to fix the storyboard so that custom classes appear in the drop downs (see linked question for some potential fixes).
较长期的解决方案可能是修复故事板,使自定义类出现在下拉列表中(有关一些潜在的修复,请参阅链接问题)。
Update:
更新:
Other interface controllers that also work use customModule="myWatchApp_WatchKit_Extension"
(notice the _Extension
vs. _App
difference) and don't need the customModuleProvider
attribute.
其他的接口控制器也可以使用customModule=“myWatchApp_WatchKit_Extension”(注意_Extension和_App的区别),并且不需要customModuleProvider属性。
#5
3
For me, this appears to be a false negative. I tried all suggested solutions, but then proved it's an Apple error by creating a brand new Apple Kit project, making one change to the Glance (adding an image) and getting the error. I've logged the following error with Apple in their Bug Reporter.
对我来说,这似乎是一个错误的否定。我尝试了所有建议的解决方案,但通过创建一个全新的Apple Kit项目来证明这是一个苹果的错误,对其进行一次修改(添加一个图像)并得到错误。我在他们的Bug报告中记录了苹果的以下错误。
Title
标题
Receive clientIdentifier for interfaceControllerID not found when navigating to Glance
当导航到浏览时,没有发现interfaceControllerID的clientIdentifier。
Description
描述
I receive the following error which appears to be a false negative when navigating to a Glance in a watchOS 2.0 project. I reproduced this by creating a brand new Apple Kit project, making one change to the Glance (adding an image) and getting the error.
当我浏览到watchOS 2.0项目时,我收到了以下错误,看起来是一个错误的否定。我通过创建一个全新的Apple Kit项目来复制这一过程,使一个变化(添加一个图像)和得到错误。
Steps to reproduce
步骤来复制
- Clear all data in both watch and iOS simulators.
- 清除手表和iOS模拟器中的所有数据。
- In XCode, create a new WatchKit application including complication and glance.
- 在XCode中,创建一个新的WatchKit应用程序,包括complex和glance。
- Run and see no issues.
- 运行并查看没有问题。
- Add a png to your image assets.
- 向映像资产添加png。
- Add a UIImageView to the Glance in Interface Builder.
- 在界面构建器中添加一个UIImageView。
- Run the extension in the watch simulator.
- 在手表模拟器上运行扩展。
- Enable the Glance in the iOS Watch companion app.
- 启用iOS手表伴侣应用程序的一瞥。
- Navigate to the Glance in the watch simulator.
- 导航到手表模拟器中的一瞥。
- Note the follow error in your log.
- 注意日志中的以下错误。
2015-07-16 08:35:10.663 restaurant-reports WatchKit App Extension[78301:2211560] *********** ERROR -[SPRemoteInterface _interfaceControllerClientIDForControllerID:] clientIdentifier for interfaceControllerID:3118001E not found
2015-07-16 08:35 .663餐厅报告WatchKit应用扩展[78301:2211560]*********** *错误-[SPRemoteInterface _interfaceControllerClientIDForControllerID:]尚未找到interfacecontrollid:3118001E的clientIdentifier
Expected result
预期的结果
No false negatives should appear in log
日志中不应出现错误否定
Actual result
实际结果
False negative appears in log
错误否定出现在日志中
Watch OS version (build)
看操作系统版本(建立)
2.0 (13S5293f)
2.0(13 s5293f)
They gave me bug id 21853566.
他们给了我错误id 21853566。
#6
2
I think you forgot to use the storyboardID to your class. That's what i get from your error.
我想你忘了在课堂上使用故事板了。这就是我从你的错误中得到的。
#7
2
I had this problem when I renamed the WatchKit target. When I renamed it back the error went away.
我在重新命名WatchKit target时遇到了这个问题。当我重新命名它时,错误消失了。
#8
2
The better way to do a push/pop controller is running that piece of code into the main thread so:
执行push/pop控制器的更好方法是将这段代码运行到主线程中:
dispatch_async(dispatch_get_main_queue(), ^{
[self pushControllerWithName:@"controllerIdentifier" context:data];
});
dispatch_async(dispatch_get_main_queue(), ^{
[self popToRootController];
});
dispatch_async(dispatch_get_main_queue(), ^{
[self popController];
});
Apple documentation says about the three methods:
苹果文件中提到了这三种方法:
Always call this method from your WatchKit extension’s main thread.
总是从WatchKit扩展的主线程调用此方法。
#9
1
You need to verify the view controller is in your compile source here: Select Project > Select Watchkit Extension Target > Build Phases > Compile Sources
您需要验证视图控制器在这里的编译源中:选择Project >选择Watchkit扩展目标>构建阶段>编译源
#10
0
It's not anything you're doing wrong. This is already a known issue. See my answer here. Please dupe the following radar on Apple's Bug Reporting System to help raise the priority to get this fixed.
这不是你做错的事。这是一个已知的问题。看到我的答案。请在苹果的Bug报告系统上使用以下雷达,以帮助提高修复的优先级。
#11
0
I was having same issues after the recent 8.2 release. I had to go to each one of my InterfaceControllers and adjust its custom class module to whatever was shown as an option or "none".
在最近的8.2版之后,我也遇到了同样的问题。我必须访问每个InterfaceControllers,并将其自定义类模块调整为显示为选项或“none”的任何模块。
#12
0
I had this problem when I mistakenly set root interface controller's identifier. When I remove the identifier, this warning disappeared.
当我错误地设置根接口控制器的标识符时,我遇到了这个问题。当我删除标识符时,这个警告就消失了。
#13
0
The controller’s Module name should be the same name as your Project’s root name (top left blue Xcode document icon name).
控制器的模块名称应该与项目的根名称(左上角的蓝色Xcode文档图标名称)相同。
Your dynamic interface’s module name should be that same name and your destination controller’s module name (i.e. the one you're pushing to) should also be the same name.
您的动态接口的模块名应该是相同的名称,您的目标控制器的模块名(即您要推送的模块名)也应该是相同的名称。
Btw, in case you’re new or not sure I thought I’d throw this in because you might be thinking your class is wrong or something. Your Dynamic Interface Controller doesn’t have to point to the default Xcode NotificationController.swift class. Of course you can create a custom class i.e. FriendRequestNotificationController
顺便说一下,如果你是新手或者不确定我想把这个扔进去因为你可能认为你的课是错的。您的动态接口控制器不需要指向默认的Xcode NotificationController。斯威夫特类。当然,您可以创建一个自定义类,例如FriendRequestNotificationController
To troubleshoot you can add this code into awakeWithContext method to see what controllers have what IDs.
要进行故障排除,可以将此代码添加到awakeWithContext方法中,以查看哪些控制器具有哪些id。
override func awakeWithContext(context: AnyObject?) {
super.awakeWithContext(context)
if let vcID = self.valueForKey("_viewControllerID") as? NSString {
print("Controller: \(vcID)")
}
// Configure interface objects here.
}
#14
0
- If you are using page-based navigation (from where you are handling push or presenting a new view controller) then please present the new controller instead of pushing it.
- 如果您正在使用基于页面的导航(从这里处理push或显示新的视图控制器),那么请显示新的控制器,而不是push它。
- Since first screen which if page based (like page view controller) screens, then it by default uses pushing of next page or previous page on swiping left and right and it becomes root window view of your WatchKit app. In this case if you push another controller on click from inside controls then it will not recognise the push but it will recognise present new controller. Hence please do follow the rules if possible.
- 以来第一个屏幕,如果页面(如页面视图控制器)屏幕上,那么在默认情况下使用推下一页或上一页刷,就根窗口视图WatchKit应用。在这种情况下如果你把另一个控制器上单击“从内部控制就不会认识到推动但它会承认目前新控制器。因此,如果可能的话,请遵守规则。