2016-03-28 5 views
1

Ein UIViewController versucht, eine UIImagePickerController zu präsentieren und die App hat noch keine Erlaubnis angefordert, auf die Fotogalerie zuzugreifen.Wie kann verhindert werden, dass die Ansicht verschwindet, wenn ein Fotozugriff angefordert wird?

Also vor der Präsentation der UIImagePickerController iOS zeigt eine UIAlertController an den Benutzer bitten, den Zugriff auf Fotos zu erlauben oder zu verweigern. Die zuvor sichtbare Ansicht wurde jedoch bereits entfernt, sodass die Warnung über der Ansicht des zugrunde liegenden Ansichtscontrollers angezeigt wird.

Wie kann ich verhindern, dass die aktuelle Ansicht von Anfang entfernt wird oder zumindest verhindern, dass die zugrunde liegende Ansicht sichtbar wird, wenn die Warnung angezeigt wird?

Antwort

0

Found it out:

Die UIImagePickerController hat seine Eigenschaft modalPresentationStyle Satz auf einen .Over... Wert haben, so dass die darunter liegende Bildschirm verschwindet nicht, nachdem der Übergang abgeschlossen ist.

Also statt

self.modalPresentationStyle = .FullScreen 

sollte es zu einer dieser

self.modalPresentationStyle = .OverFullScreen 
self.modalPresentationStyle = .OverCurrentContext // In this case also set `definesPresentationContext = true` for the presenting view controller. 

Vom documentation eingestellt werden:

OverFullScreen: die Ein Blick Präsentationsstil, in dem präsentierte Ansicht deckt den Bildschirm ab. Die Ansichten unterhalb des angezeigten Inhalts werden nicht von der Ansichtshierarchie entfernt, wenn die Präsentation beendet ist. Also, wenn der vorgestellte View-Controller nicht den Bildschirm mit undurchsichtigen Inhalt, füllt der zugrunde liegende Inhalt durch zeigt.

Verwandte Themen