gpt4 book ai didi

ios - 使用基于页面的导航将数组数据从一个界面传递到 watchkit 中的另一个界面?

转载 作者:可可西里 更新时间:2023-11-01 03:31:09 25 4
gpt4 key购买 nike

我正在研究 Apple Watch。我尝试使用 watch-kit 中的 PageBasedNavigation 将数组数据从一个 InterfaceController 传递到另一个。那么有人可以建议我如何以编程方式在 watch-kit 中留下滑动表单时传递数组吗?

为了创建基于页面的界面,我遵循以下步骤:

  1. 在我的 Storyboard中,为界面中的每个页面添加界面 Controller 。

  2. 按住 Control 键并单击应用的主界面 Controller ,然后拖动到另一个界面 Controller 。

  3. 第二个接口(interface) Controller 应该高亮显示,表示可以进行 segue。

  4. 释放鼠标按钮。

  5. 从关系转场面板中选择下一页。

使用相同的技术,创建从每个界面 Controller 到下一个界面 Controller 的转场。

最佳答案

用于将对象传递到基于页面的 WKInterfaceController 的 WatchKit 方法与 iOS 中的不同。虽然您会在 Storyboard 上看到一个关系 segue,但当您单击它时,没有为该 segue 命名的选项(这是在 iOS 中使用 prepareForSegue: 方法的第一步)。

相反,您所做的是传递一个包含“上下文”对象的数组,其中一个对象将提供给管理页面的每个 WKViewController。在 Objective-C 中:

+ (void)reloadRootControllersWithNames:(NSArray *)names
contexts:(NSArray *)contexts

在 Swift 中:

class func reloadRootControllersWithNames(_ names: [AnyObject]!,
contexts contexts: [AnyObject]!)

如果您有一个对象要从一个对象传递到另一个对象,您可以将该对象设置为每个页面的上下文:

NSArray * namesArray = @[@"Page 1", @"Page 2", @"Page 3"];
NSArray * contextsArray = @[myObject, myObject, myObject];
[self reloadRootControllersWithNames:namesArray contexts:contextsArray];

从方法名上看有点反直觉,虽然这个方法叫做reloadRootControllersWithNames:WatchKit documentation on Managing Page-Based Navigation表示在启动时以及您希望在运行时重新加载此数据的任何时候都应该使用相同的方法来为这些值设定种子。

关于ios - 使用基于页面的导航将数组数据从一个界面传递到 watchkit 中的另一个界面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28170932/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com