2015-01-25 10 views

risposta

8

Ecco il modo per farlo

WKInterfaceController.reloadRootControllersWithNames(["pageController", "pageController"], contexts: ["pageController", "pageController"]) 
+0

questo crea un'animazione doppia filatura, però, una volta per caricare il controller iniziale, e poi di nuovo per ricaricare con le nuove pagine. – Erich

+2

Dove l'hai posizionato? Ricevo anche una ricorsione infinita di pagine – edwardmp

+0

@Erich sono d'accordo, ma al momento non ho trovato nulla di meglio. @edwardmp Ho inserito questo codice nel ViewController predefinito dell'interfaccia di controllo nel metodo viewDidLoad. Gli array che passo come parametri al metodo 'reloadRootControllersWithNames' dovrebbero essere generati dinamicamente. Ho usato quelli solo come esempi per illustrare la soluzione. –

0

mi si presume che si desidera visualizzare diversi pagina dello stesso tipo di dati.

Apple Watch Programming Guide comunica quanto segue

Questo stile è adatto per applicazioni con semplici modelli di dati in cui i dati su ogni pagina non è strettamente correlata ai dati su qualsiasi altra pagina.

Pertanto, penso che dovresti attenersi alle visualizzazioni della tabella per visualizzare diversi elementi strettamente correlati (di tipo) tra loro. Dal mio punto di vista, la navigazione del controller basata su pagina (scorrimento) è troppo lenta/noiosa per essere utilizzata per molte pagine. Inoltre, penso che potrebbe richiedere molto tempo per caricare il controller basato su pagina.

5

di evitare l'uso ciclo infinito:

static BOOL first = YES; 
- (void)willActivate { 
    // This method is called when watch view controller is about to be visible to user 
    [super willActivate]; 

    if (first) { 
     [WKInterfaceController reloadRootControllersWithNames:[NSArray arrayWithObjects:@"SinglePageICIdentifier",@"SinglePageICIdentifier", nil] contexts:[NSArray arrayWithObjects:@"First",@"Second", nil]]; 
     first = NO; 
    } 

} 
Problemi correlati