如何在运行时Apple Watch创建基于动态页面的应用程序

时间:2015-02-05 22:45:47

标签: swift watchkit apple-watch

我想构建一个基于页面的应用程序,其页面数量未知,直到运行时。

是否有办法通过进行api调用来检查需要多少页面,然后制作那么多页面。我想在应用程序加载时最初执行此操作而不在awakeWithContext中重新加载,导致加载活动图标出现两次?

2 个答案:

答案 0 :(得分:2)

您必须首先在属性检查器下的故事板中为您的Interface控制器设置标识符,然后将此标识符添加到可变数组中,作为您的页面计数的次数。假设您有一个名为'objects'的数据对象数组作为API调用的结果。调用WKInterface控制器的'presentControllerWithNames:contexts:'方法以模态方式呈现视图的基于页面的导航。

            NSMutableArray *controllers=[[NSMutableArray alloc] init];
            for (NSInteger i=0; i<[objects count]; ++i) {
                [controllers addObject:@"yourInterfaceControllerIdentifier"];
            }





    [self presentControllerWithNames:controllers contexts: objects];

答案 1 :(得分:0)

您可以使用WKInterfaceController的类方法+reloadRootControllersWithNames:contexts:

我所做的是创建一个根接口控制器,并在其-init方法上加载我需要的页面,如下所示:

- (void)init {
    self = [super init];
    if (self) {
        [WKInterfaceController reloadRootControllersWithNames:@[@"Controller1", @"Controller2"]
                                                     contexts:nil];
    }
    return self;
}

控制器的名称是您在故事板上定义的标识符。