我想构建一个基于页面的应用程序,其页面数量未知,直到运行时。
是否有办法通过进行api调用来检查需要多少页面,然后制作那么多页面。我想在应用程序加载时最初执行此操作而不在awakeWithContext中重新加载,导致加载活动图标出现两次?
答案 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;
}
控制器的名称是您在故事板上定义的标识符。