2017-05-09 2 views
1

Ich habe eine UINavigationController angezeigt als Kind View-Controller einen Teil des Bildschirms. Ich habe es mit einem einfachen Embed-Segue innerhalb des Storyboards dargestellt.How To Extend UIView Vergangenheit mit UINavigationController

Der rootViewController von UINavigationController hat eine kleine UIView, die ich über die Grenzen des Child-View-Controller-Containers hinaus erweitern möchte.

Meine Hierarchie sieht wie folgt aus:

1) Main View 
2) Container Nav Controller 
    3) Root View Controller 
     4) UIView which should extend past the bounds of 2 

Ich habe clipsToBounds gesetzt = false auf alle enthaltenden Ansicht, ohne Erfolg.

Ein wenig Debugging zeigt eine UINavigationTransitionView zwischen 2 und 3, mit clipsToBounds = false. Ich bin mir ziemlich sicher, dass dies das Problem verursacht (als Enterprise-App stört es mich nicht, private APIs zu verwenden).

Wie kann ich zulassen, dass sich die Ansicht über alle Container hinaus erstreckt?

+0

Teilen Sie etwas Code vielleicht? Wie präsentieren Sie den UINavigationController? – jokeman

+0

Es wird unter Verwendung eines eingebetteten Abschnitts in einem Container dargestellt; alles wird über das Storyboard erledigt. Ich werde bearbeiten, um zu klären, – cdstamper

Antwort

3

Im Viewcontroller, der die containerView unter viewDidLoad(), fügen folgenden Code enthält nach dem Auslass für die containerView Schaffung:

let layoutContainerView = self.containerView.subviews.first; 
let navigationTransitionView = layoutContainerView?.subviews.first; 
navigationTransitionView?.clipsToBounds = false; 

Diese irgendwie hacky wird, im Grunde die erste subview des navigationController ‚s view ist ein UINavigationTransitionView, in der clipsToBounds = true.