• ios containerViewController


     1 - (void)replaceViewController:(UIViewController *)existingViewController withViewController:(UIViewController *)newViewController inContainerView:(UIView *)containerView completion:(void (^)(void))completion
     2 {
     3     // Add initial view controller
     4     if (!existingViewController && newViewController) {
     5         [newViewController willMoveToParentViewController:self];
     6         [newViewController beginAppearanceTransition:YES animated:NO];
     7         [self addChildViewController:newViewController];
     8         newViewController.view.frame = containerView.bounds;
     9         [containerView addSubview:newViewController.view];
    10         [newViewController didMoveToParentViewController:self];
    11         [newViewController endAppearanceTransition];
    12         if (completion) completion();
    13     }
    14     // Remove existing view controller
    15     else if (existingViewController && !newViewController) {
    16         [existingViewController willMoveToParentViewController:nil];
    17         [existingViewController beginAppearanceTransition:NO animated:NO];
    18         [existingViewController.view removeFromSuperview];
    19         [existingViewController removeFromParentViewController];
    20         [existingViewController didMoveToParentViewController:nil];
    21         [existingViewController endAppearanceTransition];
    22         if (completion) completion();
    23     }
    24     // Replace existing view controller with new view controller
    25     else if ((existingViewController != newViewController) && newViewController) {
    26         [newViewController willMoveToParentViewController:self];
    27         [existingViewController willMoveToParentViewController:nil];
    28         [existingViewController beginAppearanceTransition:NO animated:NO];
    29         [existingViewController.view removeFromSuperview];
    30         [existingViewController removeFromParentViewController];
    31         [existingViewController didMoveToParentViewController:nil];
    32         [existingViewController endAppearanceTransition];
    33         [newViewController beginAppearanceTransition:YES animated:NO];
    34         newViewController.view.frame = containerView.bounds;
    35         [self addChildViewController:newViewController];
    36         [containerView addSubview:newViewController.view];
    37         [newViewController didMoveToParentViewController:self];
    38         [newViewController endAppearanceTransition];
    39         if (completion) completion();
    40     }
    41 }
  • 相关阅读:
    监控代码运行时长 -- StopWatch用法例程
    验证码处理算法(一)
    Linux下安装JDK及相关配置
    JAVA爬虫---验证码识别技术(一)
    JAVA4大线程池
    海量数据去重(上亿数据去重)
    python协程与异步协程
    解决WinSCP连接虚拟机
    生产消费者模式与python+redis实例运用(中级篇)
    生产消费者模式与python+redis实例运用(基础篇)
  • 原文地址:https://www.cnblogs.com/liyufeng2013/p/4022330.html
Copyright © 2020-2023  润新知