在 WatchKit 中,从模态视图调用 presentControllerWithName 将呈现视图锚定为根

In WatchKit, calling presentControllerWithName from a Modal view anchors the presenting view as root

我有一个 WKInterfaceController 包含一个 WKInterfaceTable 调用

- (void)presentControllerWithNames:(NSArray *)names contexts:(NSArray *)contexts

以模态方式呈现 2 个分页控制器。如果我打电话给

- (void)presentControllerWithName:(NSString *)name context:(id)context

来自其中一个控制器,或者更具体地说

- (void)presentTextInputControllerWithSuggestions:(NSArray *)suggestions allowedInputMode:(WKTextInputMode)inputMode completion:(void (^)(NSArray* results))completion

然后关闭新呈现的控制器,我松开呈现模态控制器上的 取消 按钮。所以我没有办法回到根控制器。

你的问题有点难以理解,但我相信你遇到问题的根本原因是你在另一个模态界面控制器之上呈现一个模态界面控制器,这不是你想要做的.您将 运行 遇到您所看到的问题,例如 Cancel 按钮未出现。

相反,我鼓励您跳出框框思考。如果您使用 WKInterfaceController reloadRootControllersWithNames(_:contexts:) 切换页面集,而不是在另一个模式之上呈现一个模式,会怎样?这样你就不会再有模态问题了。

总而言之,Watch Apps 中的导航设计有点棘手,但如果您遵循通用规则,通常可以很好地工作。

  • 仅使用分层或基于页面的布局系统
  • 不要在模态框之上呈现模态框

希望这有助于阐明一些问题。