Sobes.tech
Junior — Middle

Kādas sekas rodas, atverot vairākus ekrānus ar push un pēc tam aizverot pēdējo ar dismiss?

sobes.tech AI

Atbilde no AI

Navigācijā iOS, izmantojot UINavigationController, metode pushViewController pievieno jaunu ekrānu (ViewController) navigācijas stekam. Ja atver vairākus ekrānus šādā veidā, tie tiks secīgi pievienoti stekam.

Ja pēc tam mēģināt aizvērt pēdējo ekrānu ar dismiss, tas nesanāks, jo dismiss tiek izmantots modāli parādītu kontrolieru aizvēršanai, nevis tiem, kas atrodas navigācijas stekā. Rezultātā pēdējais ekrāns paliks uz ekrāna, un lietotājs neatgriezīsies iepriekšējā.

Lai aizvērtu push pievienotos ekrānus, jāizmanto metode popViewController vai popToViewController. Ja izsauc dismiss uz kontroliera, kas tika atvērts ar push, tas nesniegs gaidīto rezultātu, jo dismiss darbojas tikai ar modāliem pārejām.

Kopsavilkums:

  • push pievieno ekrānu navigācijas stekam.
  • dismiss aizver modāli parādītus ekrānus.
  • Push ekrānu aizvēršana ar dismiss nedarbojas, jāizmanto pop.