WKInterfaceController 中的左边缘滑动会挂起 Apple Watch 中的 UI
Posted
技术标签:
【中文标题】WKInterfaceController 中的左边缘滑动会挂起 Apple Watch 中的 UI【英文标题】:left-edge swipe in WKInterfaceController is hangs the UI in Apple watch 【发布时间】:2015-07-10 14:26:32 【问题描述】:我在WKInterfaceController
中遇到了与左边缘滑动相关的严重问题。
当我从根接口控制器向WKInterfaceController
进行两次左边缘滑动时,我的应用程序会挂起 UI。
例如,我有 A、B、C 三个 WKInterfaceController
,当我从 A 界面控制器向左滑动两次之后,我点击一个按钮将我的界面控制器从 A 推到 B。所以我的 B 界面控制器永远不会出现在屏幕上。我检查了 willActivate
是否在 B 上被调用,但 A 的 didDeactivate
方法从未被调用。
一旦我进入后台然后回到前台,我就可以看到 B 接口控制器。
我正在使用以下代码将我的控制器从 A 推送到 B:
[self pushControllerWithName:@"B" context:nil];
之后我尝试segue
做同样的事情。但segue
也会发生这种情况。
如果有人有同样的问题或知道相关的解决方案或建议,请告诉我。谢谢
【问题讨论】:
【参考方案1】:我遇到了同样的问题。 我在这里写了一个非常简单的演示https://github.com/ddrdjboy/AppleWatchLeftSwipeIssueDemo
步骤:
-
点击应用图标并启动应用(回到前台)。
点击“Hello World~”表格行,它将推送到详细信息屏幕。
单击返回按钮或向左滑动。 (有时你可以忽略这一步,没关系。)
点击数字表冠进入apple watch主界面。
重复步骤 1-4 超过 30 次(根据我的经验)它将随机发生。
当错误发生时: 点击“Hello World~”表格行,没有效果。 单击左上角的返回按钮无效。 只有左边缘滑动可以挽救。当我向左滑动时,第一个屏幕会从右到左动画,第二个屏幕会进来。非常非常奇怪。
我提出了一个错误并等待 Apple 的回应。
【讨论】:
以上是关于WKInterfaceController 中的左边缘滑动会挂起 Apple Watch 中的 UI的主要内容,如果未能解决你的问题,请参考以下文章
WKInterfaceController,如何以编程方式设置“间距”和“插图”
如何解除使用 contextForSegue 呈现的 WKInterfaceController?
可以在 SwiftUI Watch 项目中实例化 WKInterfaceController 吗?
我们如何为 WKInterfaceController 移植 addGestureRecognizer(recognizer)
WKInterfaceLabel 未在 WKInterfaceController 中更新 - Swift Apple watch dev