• UIViewController自带的NavigationViewController不显示的问题


        问题: 妹子最近在写代码的时候想使用一下UIViewController自带的navigationVIewController的时候发现无论在navigation中写入什么代码,界面都没有显示,通过分层图发现界面上压根就没有这个navigationBar的容器啊,哪里去了,哪里去了?

        例子:先贴出妹子错误的示范:

        if (self.navigationController) { // 去掉这一层也是错误的示范哦

            self.navigationItem.title = @"姨吗爱买";

            self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@""] style:UIBarButtonItemStylePlain target:self action:@selector(selector)];

        }

      

       原因:查阅了navigationController的属性,发现没有在本界面设置某一个属性就可以使得navigationBar出来,而问题的根本在这里

    UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:firstViewController];

    self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
    self.window.rootViewController = navigationController;

        只有在APPdelegate中添加了这句话,并且保证self.window.rootViewController = navigationController;才会创建出navigationBar;

       所以如果是简单的demo的话是可以直接这样使用的,但是一个复杂的demo中是需要用到各种视图控制器,比如tabBar这样两者就会发生冲突,面对这种情况下,小伙伴们要乖乖的自定义一个navigationViewController,添加到UITableView中,然后自定义这个navigationViewController,代码如下

       例如:

    @property (nonatomic, strong) UIView *tableHeaderView;

    - (UITableView *)tableView

    {

        if (!_tableView) {

            _tableView = [[UITableView alloc]initWithFrame:[UIScreen mainScreen].bounds style:UITableViewStylePlain];

            _tableView.tableHeaderView = self.tableHeaderView;

        }

        return _tableView;

    }

    - (UIView *)tableHeaderView

    {

        if (!_tableHeaderView) {

            _tableHeaderView = [[UIView alloc]init];

            _tableHeaderView.frame = CGRectMake(0, 0, UIScreen.mainScreen.bounds.size.width, 100);

            _tableHeaderView.backgroundColor = [UIColor clearColor];

        }

        return _tableHeaderView;

    }

       虽然写完以后觉得很简单,但是之前一直找不到原因啊,所以记录下来希望能帮到需要的小伙伴

  • 相关阅读:
    获取文件夹下的所有子文件,读取TXT文档
    360笔试
    刷题总结
    背包问题
    二叉树的创建、层次遍历、前序遍历、中序遍历、后序遍历
    今日头条面试
    面试题目
    Java高并发秒杀优化
    配置tomcat解压版
    环境变量设置:
  • 原文地址:https://www.cnblogs.com/lepus/p/5867554.html
Copyright © 2020-2023  润新知