Sobes.tech
Middle

Ի՞նչ է տեղի ունենում UIViewController-ի հետ ծրագրի նվազեցման ժամանակ։

sobes.tech AI

Պատասխան AI-ից

Երբ ծրագիրը սեղմվում է UIViewController-ով, որը ներկայումս ցուցադրվում է օգտվողին, այն անցնում է հետևյալ կյանքի ցիկլի փուլերով:

  1. viewWillDisappear: Այս մեթոդը կանչվում է նախքան տեսքը դադարեցնի լինել տեսանելի: Այստեղ կարելի է պահպանել UI-ի վիճակը կամ չեղարկել գործողությունները:
  2. viewDidDisappear: Այս մեթոդը կանչվում է այն ժամանակ, երբ տեսքը ամբողջությամբ թաքնվում է:
  3. applicationWillResignActive: Այս մեթոդը կանչվում է AppDelegate-ում նախքան հավելվածը անցնում է ակտիվից ոչակտիվ վիճակի (օրինակ՝ սեղմելու կամ զանգ ստանալու ժամանակ):
  4. applicationDidEnterBackground: Այս մեթոդը կանչվում է AppDelegate-ում, երբ հավելվածը անցնում է ֆոնային ռեժիմ: Այս վիճակում հավելվածը սահմանափակ ժամանակ ունի գործառույթների համար և կարող է դադարեցվել կամ ավարտվել համակարգի կողմից: UIViewController-ը այդ ժամանակ մնում է հիշողության մեջ, բայց նրա տեսքը չի ցուցադրվում:

Եթե հավելվածը մնում է ֆոնային ռեժիմում և չի ավարտվում համակարգի կողմից, ապա հետագա ակտիվացման ժամանակ UIViewController-ը անցնում է հակառակ փուլերով:

  1. applicationWillEnterForeground: Այս մեթոդը կանչվում է AppDelegate-ում նախքան հավելվածը վերադառնում է ֆոնից ակտիվ վիճակ:
  2. applicationDidBecomeActive: Այս մեթոդը կանչվում է AppDelegate-ում, երբ հավելվածը կրկին դառնում է ակտիվ:
  3. viewWillAppear: Այս մեթոդը կանչվում է նախքան տեսքը դառնում է տեսանելի: Այստեղ կարելի է թարմացնել UI-ն:
  4. viewDidAppear: Այս մեթոդը կանչվում է այն ժամանակ, երբ տեսքը դառնում է տեսանելի:

Կարևոր է նշել, որ UIViewController օբյեկտը ինքնին չի հեռացվում հիշողությունից սեղմելու ժամանակ, եթե այն չի արտահայտվել համակարգի կողմից ռեսուրսների բացակայության պատճառով (որը հազվադեպ է և կախված է բազմաթիվ գործոններից): Տեսքը (view) նույնպես կարող է հեռացվել հիշողությունից (viewWillUnload, viewDidUnload - մեթոդները հանվել են iOS 6-ից), եթե այն ներկայումս անհրաժեշտ չէ և համակարգը պահանջում է հիշողություն: Այդ դեպքում, երբ հաջորդ անգամ մուտք եք գործում view-ին, այն նորից կստեղծվի։