2017-03-12 6 views
0

Ich präsentiere einen View-Controller (B) über eine andere (A), wo ich möchte, dass der Hintergrund von B transparent, so dass A ist immer noch im Hintergrund sichtbar.Transparent View Controller Hintergrund Wenn Vollbild dargestellt

Bevor also B angezeigt wird, wird modalPresentationStyle auf .overCurrentContext gesetzt und B hat view.backgroundColor = UIColor.clear, so dass der transparente Hintergrund vorhanden ist. Wenn ich jedoch B verlasse und zu A zurückkehre, werden Methoden von A wie viewDidAppear, viewWillAppear usw. nicht erneut ausgelöst.

Wenn ich die obigen modalPresentationStyle zu .fullScreen, viewWillAppear ändern und solche werden wieder ausgelöst, wenn zurück zu A, aber diesmal, verliere ich den transparenten Hintergrund.

Alles in allem, wie kann ich sowohl einen transparenten Hintergrund in der dargestellten Ansicht erzielen als auch Methoden wie viewDidAppear auf A erneut auslösen, wenn ich zu A zurückkehre?

Antwort

2

Wenn Sie im Vollbildmodus angezeigt werden, wird die Präsentationsansicht aus der Ansicht entfernt - es ist also nichts in Ihrer Transparenzansicht zu sehen. Also wird diese Methode nicht für Sie funktionieren.

Wenn Sie den aktuellen Kontext präsentieren über die präsentierenden Ansicht bleibt - aber das ist warum viewDidAppear etc nicht aufgerufen - es nie wegging, damit es nicht wieder erschienen ist.

Anstelle von viewDidAppear verwenden Sie eine andere Methode zum Erkennen, dass Ihre transparente Ansicht verworfen wurde, z. B. ein Abwicklungssegment oder eine der anderen in this SO answer beschriebenen Methoden.

Verwandte Themen