2016-01-07 9 views
5

Ich habe eine View-Controller, die ich über einem anderen View-Controller überlagern. Ich brauche nur den Top-View-Controller, damit ich eine temporäre Popup-Benachrichtigung überlagern kann, und eine überlagerte VC erlaubt mir, dies über einen UITableViewController darzustellen, da man keine Subviews direkt zu den Tableview-Controllern hinzufügen kann.Pass berührt durch einen UIViewController

Ist es möglich, mit dem Bottom View Controller zu interagieren, während er über einen anderen View Controller verfügt. Wenn dies eine Ansicht oder ein Fenster wäre, würden Sie dies erreichen, indem Sie die Benutzerinteraktion auf false setzen oder hitTest verwenden, aber keiner dieser Ansätze funktioniert für einen View-Controller.

+0

Was genau meinen Sie mit "abdecken"? Wie ist die Beziehung zwischen diesen View-Controllern? – matt

+0

VC1 ruft presentViewController (VC2) auf. VC2 hat modalPresentationStyle = .OverCurrentContext, backgroundColour.clear. Ich möchte Berührungen auf VC1 nicht VC2 registrieren. –

+0

ist vc2.view eine Unteransicht von vc1.view? – lzl

Antwort

1

Wie Sie richtig erkannt haben, befindet sich die Ansicht des präsentierenden Ansicht-Controllers nicht in der Responder-Kette, wenn Sie einen Ansichts-Controller einem anderen gegenüberstellen. Touches in der View-Controller Ansicht kann daher nicht "durch" fallen. Sie müssen Ihre Nachricht auf andere Weise von der Ansicht des Viewcontrollers weiterleiten.

1

Sie haben keinen Zugriff auf den vorherigen ViewController und der Benutzer kann nicht durch Berühren interagieren. Eigenschaft modalPresentationStyle = .OverCurrentContext bedeutet nur, dass Ansichten unter dem dargestellten Inhalt nicht aus der Ansichtshierarchie entfernt werden.

Verwandte Themen