美文网首页
在UINavigationController下的-(void)

在UINavigationController下的-(void)

作者: 亡鱼 | 来源:发表于2016-08-29 20:56 被阅读82次

    viewWillAppear 只在该视图控制器 视图直接添加到 window 上的时候才会调用。 比如

    [window addSubview:rootViewController.view];
    [rootViewController.view addSubview:navigationController.view];
    

    navigationController并不是直接添加到window上去的。
    可以通过以下方式解决: 可以用 UINavigationControllerDelegate的
    – navigationController:willShowViewController:animated:方法达到这个目的。
    所以要做到这个,你必须做以下几步:

    1. 设置代理类
    2. 代理类实现
    UINavigationControllerDelegate Protocol       
    nav.delegate = self;
    
    1. 在代理类中添加'– navigationController:willShowViewController:animated:'方法
    -(void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
    {
        [viewController viewWillAppear:animated];
    }
    

    或者在导航控制器上层controller的viewWillAppear中显式调用viewWillAppear方法

    -(void)viewWillAppear:(BOOL)animated
    {
        [super viewWillAppear:animated];
        [selectedViewController viewWillAppear:animated];  //tabbarController直接用selectedViewController更方便
    }
    

    相关文章

      网友评论

          本文标题:在UINavigationController下的-(void)

          本文链接:https://www.haomeiwen.com/subject/dccfettx.html