2016-01-07 25 views
5

Ho un controller di visualizzazione che sovrappongo sopra un altro controller di visualizzazione. Ho solo bisogno del controller di visualizzazione superiore in modo da poter sovrapporre una notifica di pop-up temporanea, e avere un VC sovrapposto mi consente di presentare questo su un UITableViewController poiché non è possibile aggiungere direttamente le subviews ai controller di tableview.Passa il contatto con un UIViewController

È possibile interagire con il controllore di vista inferiore mentre ha un altro controller di visualizzazione che lo copre. Se si trattasse di una vista o di una finestra, si otterrebbe ciò impostando l'interazione dell'utente su falso o utilizzando hitTest, ma nessuno di questi approcci funziona per un controller di visualizzazione.

+0

Cosa intendi esattamente per "copertura"? Qual è la relazione tra questi controller di visualizzazione? – matt

+0

chiamate VC1 presentViewController (VC2). VC2 ha modalPresentationStyle = .OverCurrentContext, backgroundColour.clear. Voglio che i tocchi si registrino su VC1 e non su VC2. –

+0

è vc2.view una sottoview di vc1.view? – lzl

risposta

1

Come è stato correttamente dedotto, quando si presenta un controller di visualizzazione rispetto a un altro, la vista del controller di visualizzazione che presenta non si trova nella catena di risposta. Tocca nella vista del controller di visualizzazione presentato quindi non può "cadere attraverso" ad esso. Dovrai indirizzare il tuo messaggio dalla vista del controller vista presentata in un altro modo.

1

Non si ha accesso al ViewController precedente e l'utente non può interagire toccandolo. Proprietà modalPresentationStyle = .OverCurrentContext significa semplicemente che le viste nel contenuto presentato non vengono rimosse dalla gerarchia della vista.

Problemi correlati