美文网首页UIKit
UIKit - UINavigationController

UIKit - UINavigationController

作者: ienos | 来源:发表于2020-04-20 00:42 被阅读0次

    hidesBottomBarWhenPushed

    // 如果掉了 self.tabBarcontroller.tabBar.hidden = YES , 且在 push 出新的控制器时设置了 hidesBottomBarWhenPushed = YES,
    // pop 回来之后 tabBar 会显示,下面👇重写方法防止该情况发生
    - (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated {
        if (viewController.hidesBottomBarWhenPushed && self.tabBarController) {
            if (self.tabBarController.tabBar.hidden) {
                viewController.hidesBottomBarWhenPushed = NO;
            }
        }
        [super pushViewController:viewController animated:animated];
    }
    

    栈内控制器提前释放

    NSMutableArray *navigationArray = [[NSMutableArray alloc] initWithArray:self.navigationController.viewControllers];
    // [navigationArray removeAllObjects];    // 移除所有的controller
    [navigationArray removeObjectAtIndex:navigationArray.count - 2];  // 移除指定的controller
    self.navigationController.viewControllers = [navigationArray copy];
    

    导航栏在该控制器显示和隐藏

    - (void)viewWillAppear:(BOOL)animated {
        [super viewWillAppear:animated];
        [self.navigationController setNavigationBarHidden:YES animated:NO];
    }
    
    - (void)viewWillDisappear:(BOOL)animated {
        [super viewWillDisappear:animated];
        [self.navigationController setNavigationBarHidden:NO animated:NO];
    }
    

    相关文章

      网友评论

        本文标题:UIKit - UINavigationController

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