zoukankan      html  css  js  c++  java
  • 有关UIViewController函数调用与否的测试

    问题:当UIViewController的view通过add的方式添加到其他controller上时,导致viewWillAppear等这些函数不被调用

    solve:当ios的版本从5.0开始之后,UIViewController的view不管是通过何种方式增加到其他的controller上,viewWillAppear、viewDidAppear等这些函数都会执行,只有5.0以下的版本才需要做特殊处理


    特殊处理如下:
         只需要在UINavigationController的根controller中实现就行

    .h文件,实现UINavigationControllerDelegate
    @interface DPayGameShopViewController : UIViewController<UINavigationControllerDelegate>

    .m文件:
    - (void)viewDidLoad {
        [super viewDidLoad];
         //判断系统版本
        if ([[DPayConfig sharedInstance] isLowIOSVersion] && nil == self.navigationController.delegate) {
            self.navigationController.delegate = self;
        }
    }

    - (void)dealloc {
        self.navigationController.delegate = nil;
        [super dealloc];
    }

    #pragma mark - UINavigationControllerDelegate method

    - (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated {
         //此处还可以调用viewController其他的类方法  如viewDidAppear等
        [viewController viewWillAppear:animated];
    }

    然后对应每个页面只要实现viewWillAppear这些方法即可
  • 相关阅读:
    IDEA学习和收藏夹
    mysql资料收集及学习
    一些模板代码
    docker学习
    Spring事务传播类型
    rust学习疑惑
    [重新做人]从头学习JAVA SE——java.lang.reflect
    java核心技术卷一
    Spring实战 难懂的JavaBean
    Spring实战系列
  • 原文地址:https://www.cnblogs.com/cnsec/p/11515851.html
Copyright © 2011-2022 走看看