Zoeken…


Invoering

Modale presentatiestijlen worden gebruikt wanneer u overstapt van de ene viewcontroller naar de andere. Er zijn 2 manieren om deze aanpassing te bereiken. De ene is via code en de andere via Interface Builder (met behulp van segmenten). Dit effect wordt bereikt door de variabele modalPresentationStyle te stellen op een instantie van UIModalPresentationStyle enum. modalPresentationStyle eigenschap modalPresentationStyle is een klassenvariabele van UIViewController en wordt gebruikt om aan te geven hoe een ViewController op het scherm wordt gepresenteerd.

Opmerkingen

Onthoud altijd de volgende vermelding van Apple.

In een horizontaal compacte omgeving worden modale weergavecontrollers altijd op volledig scherm gepresenteerd. In een horizontaal normale omgeving zijn er verschillende presentatie-opties.

ModalPresentationStyle verkennen met Interface Builder

Dit wordt een zeer eenvoudige app die verschillende ModalpresentationStyle in iOS zal illustreren. Volgens de documentatie die hier wordt gevonden, zijn er 9 verschillende waarden voor UIModalPresentationStyle die als volgt zijn,

  1. fullScreen
  2. pageSheet
  3. formSheet
  4. currentContext
  5. custom
  6. overFullScreen
  7. overCurrentContext
  8. popover
  9. none

Om een project in te stellen, maakt u gewoon een normaal iOS-project en voegt u 2 ViewControllers . Plaats een UIButton in uw eerste ViewController en verbind deze met de 2e ViewController via een Target -> Action mechanisme. Om beide ViewControllers te onderscheiden, stelt u de achtergrondeigenschap van UIView in ViewController een andere kleur in. Als alles goed gaat, zou je Interface Builder er zo uit moeten zien, Eerste interfacebuilder

Zorg ervoor dat u dit project bouwt en uitvoert op iPad (zie het gedeelte Opmerkingen voor meer informatie over de iPad). Als u klaar bent met het instellen van uw project, selecteert u het segment en gaat u naar de attributes inspector . Je zou zoiets moeten kunnen zien, voer hier de afbeeldingsbeschrijving in

Stel de eigenschap type in op Present Modally .

Nu zullen we niet alle effecten in dit voorbeeld zien, omdat voor sommige een beetje code nodig is.

Laten we beginnen met fullscreen . Dit effect wordt standaard geselecteerd wanneer u Present Modally op het tabblad Kind . Wanneer u bouwt en uitvoert, neemt de 2e ViewController het volledige scherm van uw iPad in beslag.

voer hier de afbeeldingsbeschrijving in

Het volgende is pageSheet . U kunt deze optie selecteren op het tabblad Presentation . In deze optie, wanneer het apparaat in de ViewController modus staat, is de 2e ViewController vergelijkbaar met volledig scherm, maar in de liggende modus is de 2e ViewController veel smaller dan de breedte van het apparaat. Alle inhoud die niet door 2nd ViewController wordt gedekt, wordt ook grijs weergegeven.

voer hier de afbeeldingsbeschrijving in

Voor formSheet stijl wordt de 2e ViewController in het midden van het apparaat geplaatst en is de grootte kleiner dan die van het apparaat. Ook wanneer het apparaat zich in de liggende modus bevindt en het toetsenbord zichtbaar is, wordt de weergavepositie naar boven aangepast om de ViewController te tonen.

voer hier de afbeeldingsbeschrijving in

De laatste stijl die we gaan proberen is popover . Selecteer Present as Popover op het tabblad Kind om deze stijl te selecteren. De 2e ViewController wordt gepresenteerd als een kleine popover (grootte kan worden ingesteld). De achtergrondinhoud is grijs. Elke tik buiten de popover zou de popover sluiten. Uw Attributes Inspector zou er ongeveer zo uit moeten zien,

voer hier de afbeeldingsbeschrijving in

Anchor is het UI-element waarnaar u uw popover-pijl wilt wijzen. Directions zijn de richtingen waarin uw popover- Anchor kan wijzen.

voer hier de afbeeldingsbeschrijving in

Er zijn meer dan deze basismodale presentatiestijlen, maar ze zijn weinig ingewikkeld om te bereiken en vereisen wat code. Meer details zijn te vinden in de Apple-documentatie.



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow