作者:陈政德169384 | 来源:互联网 | 2023-05-24 19:08
我正在研究Apple手表.我试图InterfaceController
使用PageBasedNavigation
in 将数组数据从一个传递到另一个watch-kit
.那么任何人都可以建议我如何在以watch-kit
编程方式滑动表格的同时传递数组?
对于创建基于页面的界面,请按照以下步骤操作:
在我的故事板中,为界面中的每个页面添加界面控制器.
按住Control键并单击应用程序的主界面控制器并拖动到另一个界面控制器.
第二个接口控制器应突出显示,表示segue是可能的.
释放鼠标按钮.
从关系segue面板中选择下一页.
使用相同的技术,从每个接口控制器创建segue到下一个.
1> Duncan Babba..:
用于将对象传递到基于页面的WKInterfaceController的WatchKit方法与iOS中的方法不同.虽然您将在Storyboard上看到关系segue,但当您单击它时,没有选项可以命名此segue(这是prepareForSegue:
在iOS中使用该方法的第一步).
相反,你要做的是传递一个包含"上下文"对象的数组,其中一个对象将被提供给管理页面的每个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文档表明,应该使用相同的方法在启动时为这些值设置种子,以及任何想要重新加载此值的时间运行时的数据.