原代码:

    fileprivate func createSubiewControllers() {
let newsVC = NewsViewController()
let newsItem = UITabBarItem(title: "动态", image: UIImage(named: "TabNewsNormal"), selectedImage: UIImage(named: "TabNewsPressed"));
newsVC.tabBarItem = newsItem let discoverVC = DiscoverViewController()
let discoverItem = UITabBarItem(title: "发现", image: UIImage(named: "TabDiscoverNormal"), selectedImage: UIImage(named: "TabDiscoverPressed"));
discoverVC.tabBarItem = discoverItem let nullVC = UIViewController()
let nullItem = UITabBarItem()
nullVC.tabBarItem = nullItem let messageVC = MessageViewController()
let messageItem = UITabBarItem(title: "消息", image: UIImage(named: "TabMessageNormal"), selectedImage: UIImage(named: "TabMessagePressed"));
messageVC.tabBarItem = messageItem let meVC = MeViewController()
let meItem = UITabBarItem(title: "我", image: UIImage(named: "TabMeNormal"), selectedImage: UIImage(named: "TabMePressed"));
meVC.tabBarItem = meItem self.viewControllers = [newsVC, discoverVC, nullVC, messageVC, meVC] let tabBarHeight = self.tabBar.frame.size.height
let addButton = UIButton(type: .custom)
if let addImage = UIImage(named: "TabAddButton") {
addButton.frame = CGRect(x: , y: , width: addImage.size.width * (tabBarHeight - ) / addImage.size.height, height: tabBarHeight - )
addButton.setImage(addImage, for: .normal)
}
addButton.layer.masksToBounds = true
addButton.layer.cornerRadius =
var center = self.tabBar.center
center.y = self.tabBar.frame.size.height /
addButton.center = center
self.tabBar.addSubview(addButton)
}

效果:

没有显示第一个“动态”viewController。

原因:

self.viewControllers中要放UINavigationController所以将

self.viewControllers = [newsVC, discoverVC, nullVC, messageVC, meVC]

改为

        let navNewsVC = UINavigationController(rootViewController: newsVC)
let navDiscoverVC = UINavigationController(rootViewController: discoverVC)
let navMessageVC = UINavigationController(rootViewController: messageVC)
let navMeVC = UINavigationController(rootViewController: meVC)
self.viewControllers = [navNewsVC, navDiscoverVC, nullVC, navMessageVC, navMeVC]

即可正确显示。

UITabBarController加载之后不显示sub view controller的更多相关文章

  1. ie6,7下js动态加载图片不显示错误

    ie6,7下js动态加载图片不显示错误 先描述一下出现这种匪夷所思bug的背景: 我在页面加载的时候加载一堆小缩略图,<a href="javascript:void(0);" ...

  2. Fullcalendar改版后发布到IIS或者tomcat里面前端加载数据不显示的问题

    问题如题:Fullcalendar改版后发布到IIS或者tomcat里面前端加载数据不显示的问题 解决办法:通过火狐浏览器工具发现是时间格式不对的原因,需要将时间格式修改为:yyyy-MM--DD   ...

  3. vue项目未加载完成前显示loading...

    1.在Index.html里面加入loading的元素,让loading元素显示,让app元素隐藏 <!DOCTYPE html> <html> <head> &l ...

  4. IE8中jQuery.load()加载页面不显示的原因

    一.jQuery.load() jQuery.load(url,[data],[callback])通过Ajax异步请求加载服务器中的数据,并把数据放到指定元素中. url :请求服务器的地址 dat ...

  5. 在页面未加载完之前显示loading动画

    在页面未加载完之前显示loading动画 这里有很多比这篇博客还优秀的loading动画源码 我还参考这篇博客 loading动画代码demo 我的demo预览 <!DOCTYPE html&g ...

  6. 练习PopupWindow弹出框之实现界面加载的时候显示弹出框到指定的view下面--两种延迟方法

    今天在练习PopupWindow弹出框的时候,打算在界面加载的时候将弹出框展现出来并显示在指定的view下面. 初步方法是直接在OnResume方法里面直接执行showPopupWindows方法. ...

  7. 动态的计算行高 加载数据源 有多少显示多少 tableView 包含 colloctionView 显示复杂的界面写法

    有时候,我们经常碰到这样的需求 先遵守代理 @interface PublishCollectionCell ()<UICollectionViewDataSource, UICollectio ...

  8. WPF仿Tabcontrol加载切换多个不同View

    在同一块区域显示不同的视图内容,直接使用Tabcontrol,可能要重写TabItem的控件模板,最直接的方法通过按钮的切换,控制一个ContentControl的Content值,实现切换不同的视图 ...

  9. Jquery判断页面图片是否加载失败,加载失败则显示默认图片

    例子: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3. ...

随机推荐

  1. PHP中的替代语法(冒号、endif、endwhile、endfor)

    我们经常在wordpress一类博客程序的模板里面看到很多奇怪的PHP语法,比如: <?php if(empty($GET_['a'])): ?> <font color=" ...

  2. Java float保留两位小数或多位小数

    Java float保留两位小数或多位小数 方法1:用Math.round计算,这里返回的数字格式的.    float price=89.89;int itemNum=3;float totalPr ...

  3. CUBRID学习笔记 26 数据类型3cubrid教程

    接上面的集合 集合之 set 每个集合元素是不同的值, 但是类型只能是一种.也可以有其他表的记录 如下 CREATE TABLE set_tbl ( col_1 set(CHAR(1))); INSE ...

  4. Iframe刷新父窗口的几种方式

    /*Iframe刷新父窗口的几种方式在iframe的子页面中,使用onload刷新父页面的时候,遇到了一些问题. 1.目前来说,测试成功,并且兼容IE6/7和FF的刷新方式. */ <scrip ...

  5. iOS - OC NSUserDefaults 数据存储

    前言 @interface NSUserDefaults : NSObject 用来保存应用程序设置和属性.用户保存的数据.用户再次打开程序或开机后这些数据仍然存在.如果往 userDefaults ...

  6. sql概要

    sql(structured query language) 1.比较运算符一共有六种,分别为等于(=),小于(<),大于(>),小于或等于(<=),大于或等于(>=)以及不等 ...

  7. Connection的使用

    package com.cz.test.util.collection; import java.util.ArrayList;import java.util.Collection;import j ...

  8. web设计经验<一> 提升移动设备响应式设计的8个建议

    今天看到一些关于web设计的一些建议和设计经验,拿出来分享分享. 第一篇: 提升移动设备响应式设计的8个建议 一.直观性和易用性 在使用移动设备时,对于杂乱.复杂或者不直观的设计造成的混乱不佳的用户体 ...

  9. poj1375Intervals(点到圆的切线)

    链接 貌似这样的叫解析几何 重点如何求得过光源到圆的切线与地板的交点x坐标,可以通过角度及距离来算,如图, 根据距离和半径可以求得角度a.b.r,自然也可以求得d1,d2. 至于方向问题,在求r得时候 ...

  10. poj1981Circle and Points(单位圆覆盖最多的点)

    链接 O(n^3)的做法: 枚举任意两点为弦的圆,然后再枚举其它点是否在圆内. 用到了两个函数 atan2反正切函数,据说可以很好的避免一些特殊情况 #include <iostream> ...