Domanda

Cosa voglio

Una barra di navigazione completamente personalizzata, che persisterà e consente l'interazione dell'utente attraverso transizioni modali personalizzate.

cosa ho fatto

Ho costruito un controller di visualizzazione dei genitori che contiene una vista contenitore sul fondo e una vista (la barra di navigazione personalizzata) in alto. La vista del contenitore incorpora un controller di visualizzazione che può presentare altri controller di visualizzazione modalmente.

I controller di visualizzazione vengono presentati Modaly Utilizzare una transizione personalizzata (UIViewControllerTransitioningDelegate) per aprire dal basso e occupare solo la parte del controller di visualizzazione in basso (I.e. Lasciare il menu visibile).

Quando viene presentato il primo controller di visualizzazione, il menu di navigazione personalizzato può ancora essere interagito con. Tuttavia, se il primo controller di visualizzazione presentato di moda a turno presenta un altro controller di visualizzazione, quindi la barra di navigazione personalizzata non risponde all'interazione dell'utente.

|  NAV BAR  |             
|-----------|             |------------|               |------------|              
| Container |             |   View     |               |    View    |             
|   view    |-> EMBED ->  | Controller |-> Presents -> | Controller |-> Presents ->
|           |             |            |    Modally    |    1st     |    Modally   
.

(cont)

  |------------|
  |    View    |
->| Controller |
  |     2nd    |
.

Quando il controllo del primo controller viene presentato in modo modale, la barra di navigazione risponde ancora ai tocchi. Quando il secondo (e gli altri giù quella linea (cioè il 3, 4 ° ...)) sono presentati la barra di navigazione è ancora visibile ma non risponde agli utenti tocca.

C'è un progetto di esempio su github che illustra il problema che sto avendo.

Qual è il mio problema

Mi piacerebbe essere in grado di toccare la barra di navigazione, non importa quanti controller di visualizzazione ho presentato Modaly.

dovrebbe il modo in cui mi sto avvicinando a questo lavoro?

Qual è il modo migliore per realizzare ciò che voglio fare? C'è un modo standard per creare barre di navigazione completamente personalizzata (cioè diversi pulsanti, altezza personalizzata, ecc.)?

È stato utile?

Soluzione

Si prega di modificare lo stile di presentazione modale per il secondo controller di vista nel file cvtfirstviewcontroller.h Secondo GitHub progetto.

Utilizzare questo codice

     secondViewController.modalPresentationStyle = UIModalPresentationCurrentContext;
.

invece di

     secondViewController.modalPresentationStyle = UIModalPresentationCustom;
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top