2015-02-05 3 views
2

런타임까지 알 수없는 페이지 번호로 페이지 기반 앱을 만들고 싶습니다.런타임시 동적 페이지 기반 앱을 만드는 법 Apple Watch

API 호출을하고 얼마나 많은 페이지를 만들면 얼마나 많은 페이지가 필요한지 확인하는 방법이 있습니까? 처음에로드 작업 아이콘이 두 번 나타나는 awakeWithContext에서 다시로드하지 않고 앱이로드 될 때이 작업을 수행하고 싶습니다.

답변

2

속성 검사기의 스토리 보드에서 먼저 인터페이스 컨트롤러에 대한 식별자를 설정 한 다음이 식별자를 페이지 개수만큼 가변 배열에 추가해야합니다. API 호출의 결과로 'objects'라는 이름의 데이터 객체 배열이 있다고 가정합니다. WKInterface Controller의 'presentControllerWithNames : contexts :'메서드를 호출하여 뷰의 페이지 기반 탐색을 모달로 표시합니다.

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





    [self presentControllerWithNames:controllers contexts: objects]; 
+0

'presentControllerWithNames'를 실행하면 다른 레이어가 시계에 놓입니다. 시계는 root interfaceController를로드하고 루트 interfaceController 상단에 모달로 표시합니다. 두 번째 레이어를 피하고 싶습니다. reloadRootControllersWithNames를 수행하면 동일한 루트 레이어에서 페이지를 얻을 수 있지만 두 번 로딩 아이콘이 표시되지 않도록하고 싶습니다. –

0

당신은 너무 좋아, 내가 필요로하는 페이지를로드, 그것의 -init 방법에 루트 인터페이스 컨트롤러를 작성했다 내가했던 WKInterfaceController의 클래스 메소드 +reloadRootControllersWithNames:contexts:

을 사용하고 있습니다 :

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

컨트롤러 이름은 스토리 보드에 정의한 식별자입니다.