Maison  >  Questions et réponses  >  le corps du texte

ios - Comment libérer le contrôleur de vue précédent après avoir changé le contrôleur de vue racine?

Par exemple : le premier VC saisi après le démarrage de l'APP est le VC publicitaire. Le contrôleur de vue racine à ce moment est le VC publicitaire. Après quelques secondes, il passe à la page d'accueil VC. À ce moment-là, je change de racine. voir le contrôleur vers la page d'accueil VC. Puisque je n'ai plus besoin de revenir au VC publicitaire, je souhaite libérer le VC publicitaire. Y a-t-il un moyen ?
Les étudiants qui ont résolu ce problème le partageront.

扔个三星炸死你扔个三星炸死你2690 Il y a quelques jours1348

répondre à tous(2)je répondrai

  • 给我你的怀抱

    给我你的怀抱2017-07-01 09:14:25

    J'ai testé cette situation au plus tôt. Une telle publicité VC ne sera pas publiée automatiquement, ce qui signifie qu'elle prend toujours de la mémoire, mais elle est assez petite

    .

    Vous pouvez trouver la variable de pointeur du vc publicitaire et la définir sur nil Cette opération doit être effectuée après l'apparition de l'interface suivante pour éviter des changements soudains dans la vue

    .

    Une autre manière, vous pouvez utiliser la méthode du cycle de vie de la publicité vcviewDidDisappear方法中,手动清除控件指针,如self.view = nil,广告的UIImageView控件,另外由于广告只需加载一次且是大图,最好使用contentsOfFile

    répondre
    0
  • 代言

    代言2017-07-01 09:14:25

    Modification directeWindowrootControllerpeut libérer le VC publicitaire précédent.

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    
        _window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
        _window.backgroundColor = [UIColor whiteColor];
    
        _window.rootViewController = [ADViewController new];
    
        [_window makeKeyAndVisible];
        
        // 2.0秒后跳转到mainController
        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
    
        MainViewController *VC = [MainViewController new];
        
        // 修改 rootViewController 后, ADViewController会释放
        _window.rootViewController = VC; 
        });
    
        return YES;
    }

    répondre
    0
  • Annulerrépondre