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.