Sobes.tech
Junior — Middle

Milyen következményekkel jár több képernyő push-sal való megnyitása és az utolsó dismiss-sel való bezárása?

sobes.tech MI

Válasz az MI-től

iOS-on a UINavigationController használatával történő navigáció során a pushViewController módszer új képernyőt (ViewController) ad hozzá a navigációs stackhez. Ha több képernyőt nyit meg így, azok egymás után kerülnek hozzáadásra.

Ezután, ha megpróbálja bezárni az utolsó képernyőt dismiss segítségével, az nem fog működni, mivel a dismiss modálisan bemutatott kontrollerek bezárására szolgál, nem azokéra, amelyek a navigációs stackben vannak. Ennek eredményeként az utolsó képernyő a képernyőn marad, és a felhasználó nem tér vissza a korábbihoz.

A push-sal hozzáadott képernyők bezárásához használja a popViewController vagy a popToViewController módszert. Ha dismiss-t hív meg egy push-sal megnyitott kontrolleren, nem fogja elérni a várt eredményt, mivel a dismiss csak modal átmeneteknél működik.

Összefoglalás:

  • A push hozzáad egy képernyőt a navigációs stackhez.
  • A dismiss bezárja a modálisan bemutatott képernyőket.
  • A push-képernyők dismiss-sel történő bezárása nem működik, használja a pop-ot.