2015-05-03 9 views
5

Sto cercando di spingere un controller di interfaccia con l'identificatore "InterfaceControllerTodoItemTapped" a livello di codice (destinazione di distribuzione iOS 8.2) quando una riga WKInterfaceTable è sfruttato:pushControllerWithName non funziona

[self pushControllerWithName:@"InterfaceControllerTodoItemTapped" context:nil]; 

Il controller di origine è parte di una pagina impostazione di navigazione basata.

Il campo identificativo del controller dell'interfaccia ricevente è impostato su "InterfaceControllerTodoItemTapped".

Problema: Anche se viene raggiunto il comando di spinta sopra (confermata usando un punto di interruzione), l'InterfaceControllerTodoItemTapped non viene mostrato e il suo metodo awakeWithContext non viene chiamato (confermata usando un punto di interruzione).

risposta

10

Apple documentation afferma che uno deve scegliere una navigazione basata su pagina o gerarchica. Si escludono a vicenda.

Pertanto, la presentazione di un controller tramite pushControllerWithName non funziona con la navigazione basata su pagina.

La soluzione è quello di presentare il controller modale utilizzando il seguente metodo:

[self presentControllerWithName:@"InterfaceControllerTodoItemTapped" context:nil]; 
5

Se l'interfaccia controller si sta spingendo è navigazione gerarchica quindi assicurarsi -

Identifier campo in L'ispettore attributi è impostato.

[self pushControllerWithName:@"SSWatchTableInterfaceController" context:nil]; 

enter image description here