【问题标题】:How does the inbuilt Workout app on Apple Watch navigate from main table row to a set of page-based controllers?Apple Watch 上的内置锻炼应用程序如何从主表格行导航到一组基于页面的控制器?
【发布时间】:2017-01-09 20:16:26
【问题描述】:

我试图模仿锻炼应用程序进行练习。我一直在弄清楚如何从主屏幕中的这些表格行导航到 3/4 Workout 起始屏幕,这些屏幕是基于页面的,似乎是分层的,左上角有一个后退按钮。它们肯定不是模态的,因为它们不是从底部出现的。

- - ->

但是我没有找到任何方法将一行连接到一组使用 push segue 的基于页面的界面控制器。

这是我尝试过的:

1- presentController(withNames:, contexts:) 以模态方式呈现基于页面的布局。

override func table(_ table: WKInterfaceTable, didSelectRowAt rowIndex: Int) {
        let controllers = controllersForExercise(categories[rowIndex])
        presentController(withNames: controllers, contexts: nil)
    }

func controllersForExercise(_ exercise: Exercise) -> [String] {
        // Returns a bunch of Identifiers (from Storyboard) as [String]
    }

2- 在故事板中,我通过 push segue 将表格行连接到这些基于页面的界面控制器中的第一个,然后使用 nextPage segue(关系)将该控制器依次连接到其他三个基于页面的界面控制器. 这没有用。它只是与左上角的后退按钮连接,但只显示第一个界面控制器,而不是其他三个作为基于页面的控制器。 我假设它正在发生,因为表格行选择使其成为分层导航,而这是基于页面的导航,并且根据 Apple 不能将两者混合。

所以我对 Apple 如何自己管理它感到困惑。有什么线索吗?

【问题讨论】:

  • 请查看 AppCoda 的本教程:appcoda.com/selectable-table-watchkit
  • @Xcoder123 上面的教程展示了如何从表格行导航到单个控制器,而不是一组基于页面的控制器(这是我的查询)。
  • 对不起,我的错
  • Apple 应用程序经常使用私有 API 来完成一些原本无法完成的事情。这可能是一个例子。
  • 我正在尝试使用 swiftUI 实现这一点,您可以help 吗?

标签: swift watchkit apple-watch


【解决方案1】:

OBJC:

+ (void)reloadRootPageControllersWithNames:(NSArray<NSString *> *)names 
                              contexts:(NSArray *)contexts 
                           orientation:(WKPageOrientation)orientation 
                             pageIndex:(NSInteger)pageIndex;

斯威夫特:

class func reloadRootPageControllers(withNames names: [String], 
                        contexts: [Any]?, 
                     orientation: WKPageOrientation, 
                       pageIndex: Int)

【讨论】:

  • 我正在尝试使用 swiftUI 来实现这一点,您可以help 吗?
猜你喜欢
  • 2019-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-22
相关资源
最近更新 更多