2015-01-16 23 views
7

Ho provato a creare un'applicazione Apple Watch basata su pagina.Applicazione Apple Watch basata su pagina dinamica

Per quanto posso vedere, è possibile creare un numero fisso di pagine per la tua app nello storyboard.

Quindi mi chiedo se esiste un modo per creare dinamicamente le pagine della tua app in base ai dati caricati?

I.e: un'app di giornale in cui gli utenti possono scorrere verso sinistra e verso destra per passare a diversi articoli.

Grazie

+0

hai la soluzione ?? –

+0

@BandishDave Non ho avuto la possibilità di tornare a questo problema ma l'ultima volta che ho controllato, non c'era una soluzione perfetta. –

risposta

10

È possibile presentare la navigazione basata sulla pagina dal codice. È possibile specificare il numero di pagine che si desidera, ma quelle pagine deve essere progettato nello storyboard

func presentControllerWithNames(names: [AnyObject], contexts: [AnyObject]?) // modal presentation of paged controllers. contexts matched to 

Esempio

attuali Page interfacce per gli oggetti. Questo codice mostra la pagina per ogni oggetto

let objects = ["1", "2", "3", "4", "5"] 
let controllers = Array(count: objects.count, repeatedValue: "Page") 
presentControllerWithNames(controllers, contexts: objects) 

Presenta interfaccia diversa per oggetto oggetto diverso.

let objects = [1, 2, 3, 4, 5] 
let controllers = objects.map { object in object % 2 == 0 ? "Even-Page" : "Odd-Page" } 
presentControllerWithNames(controllers, contexts: objects) 
+0

grazie per la soluzione, ha funzionato. Ma il metodo visualizza effettivamente una vista modale basata su pagina, quindi c'è un pulsante Annulla sullo schermo. C'è un modo per rimuovere quel pulsante Annulla e creare il nostro pulsante? –

+0

No, non c'è. Almeno al momento @LeonNguyen –

+0

@LeonNguyen Come soluzione temporanea, puoi chiamare [self setTitle: ""] sul WKInterfaceController che presenti. Questo cambierà il pulsante Annulla in una stringa vuota ma continuerà a essere selezionabile sfortunatamente. Anche nella versione beta corrente, facendo questo, vedrai il pulsante Annulla per un secondo mentre appare il controller. Per renderlo completamente invisibile devi impostare il campo "Titolo" in IB su una stringa di spazio. – ggould75

7

Nel metodo awakeWithContext del controller all'interfaccia di base, utilizzare metodo di classe WKInterfaceController.reloadRootControllersWithNames.

let objects = ["1", "2", "3", "4", "5"] 
let controllers = Array(count: objects.count, repeatedValue: "Page") 
WKInterfaceController.reloadRootControllersWithNames(controllers, contexts: objects) 
+0

Non funziona per me. Devo aggiungere manualmente i controller di interfaccia nello storyboard? –

0

non ho potuto ottenere queste risposte al lavoro perché mi mancava una parte importante, è necessario creare un secondo controller di interfaccia con il suo identificativo, come il nome del controller. Vedi qui per maggiori informazioni: https://stackoverflow.com/a/28955247/945247

+0

Non vedi che non lo sono? – Leon

Problemi correlati