Junior — Middle
Lehetséges-e, hogy a viewDidAppear metódus előzetes viewWillAppear hívás nélkül működjön?
sobes.tech MI
Válasz az MI-től
A UIViewController normál életciklusában a viewWillAppear metódus a viewDidAppear előtt hívódik meg. Azonban vannak olyan helyzetek, amikor a viewDidAppear végrehajtódhat anélkül, hogy előtte meghívnánk a viewWillAppear-t:
- Ha a vezérlő már a képernyőn van, és ismételten meghívódik a
viewDidAppear(például modal megjelenítésből való visszatéréskor), de aviewWillAppearnem hívódik meg, mert a nézet nem tűnt el. - Programozási hibák vagy nem szabványos manipulációk esetén a vezérlők hierarchiájában.
A szabványos forgatókönyvben a viewWillAppear mindig a viewDidAppear előtt hívódik meg, ezért ha ez nem történik meg, ellenőrizni kell a vezérlők megjelenítési logikáját és életciklusukat.