1.背景

学习IOS开发也差不多两个月了,赶鸭子上架的学习模式让我学习比较快,但是真心很累,每天有每天的工作进度,在学习的

时候需要边做一个项目真心有点累,但是看到自己的收获还是值得的。自己原来是做C#开发的,由于公司需求想开展手机业务,

想公司内部的人做,我觉得是机遇,我就选择了iOS。

学习了这么就吐槽下ios的学习环境,很多时候你问别人问题得不会回你,特别是QQ群,所以想写一些比较清楚的教程帮助那些像

我一样摸索前进的新学者更快的进入。我比较常去的一些论坛都是很牛逼的。cocoa China和code4app 这两个是我经常去逛的,还有就

是xcode带的帮助,感谢它们提供的帮助。

2.开发环境

我的开发环境是Xcode 5.1.1,IOS SDK 7.1

3.实现步骤

0>实现后的界面效果

      

1>新建空项目

2>添加五个文件MainViewController,FirstViewController,SecondViewController,ThirdViewController,FourlViewController,

TestViewController分别继承至 UITabBarController, UIViewController,UIViewController,UIViewController,UIViewController,

UIViewController 后面五个可以随意,是Controller就好了,添加好的结构就是如下面。

3>打开文件AppDelegate.m文件,引进MainViewController.h 头文件,并添加如下代码

 MainViewController * mainview=[[MainViewController alloc] init];
self.window.rootViewController=mainview;

添加后的AppDelegate.m的文件如下

4>打开文件MainViewController.m,并引进FirstViewController.h ,SecondViewController.h, ThirdViewController.h ,FourlViewController.h

在viewDidLoad 函数添加如下代码

[self creatControls];

在添加函数

//将试图控制器添加到tabbar上面
- (void)creatControls
{
FirstViewController * firstview=[[FirstViewController alloc] init];
firstview.tabBarItem.image=[UIImage imageNamed:@"tab_0.png"];
firstview.tabBarItem.title=@"界面一"; UINavigationController * nvifirst=[[UINavigationController alloc] init];
[nvifirst addChildViewController:firstview]; SecondViewController * secondview=[[SecondViewController alloc]init];
secondview.tabBarItem.image=[UIImage imageNamed:@"tab_1.png"];
secondview.tabBarItem.title=@"界面二";
UINavigationController * nvisecond=[[UINavigationController alloc] init];
[nvisecond addChildViewController:secondview]; ThirdViewController * third=[[ThirdViewController alloc] init];
third.tabBarItem.image=[UIImage imageNamed:@"tab_2.png"];
third.tabBarItem.title=@"界面三";
UINavigationController * nvithird=[[UINavigationController alloc] init];
[nvithird addChildViewController:third]; FourlViewController * fourview=[[FourlViewController alloc]init];
fourview.tabBarItem.image=[UIImage imageNamed:@"tab_3.png"];
fourview.tabBarItem.title=@"界面四";
UINavigationController * nvifourview=[[UINavigationController alloc] init];
[nvifourview addChildViewController:fourview]; NSArray * controls=[NSArray arrayWithObjects:nvifirst,nvisecond,nvithird,nvifourview, nil]; self.viewControllers=controls; }

5.分别在FirstViewController.m ,SecondViewController.m, ThirdViewController.m ,FourlViewController.m的viewDidLoad函数里分别添加

  self.view.backgroundColor=[UIColor redColor];
self.navigationItem.title=@"美女";

根据需要修改文字就好了。

6.在FirstViewController.m文件里引入头文件TestViewController.h,并在viewDidLoad函数里分别添加如下代码

 UIBarButtonItem * right=[[UIBarButtonItem alloc]initWithTitle:@"我想要" style:(UIBarButtonItemStyleBordered) target:self action:@selector(select:)];
self.navigationItem.rightBarButtonItem=right;

再添加函数

- (void)select:(id)sender
{
NSLog(@"你想要什么");
TestViewController * testview=[[TestViewController alloc] init];
[self.navigationController pushViewController: testview animated:YES];
}

7.打开文件TestViewController.m 并在viewDidLoad函数里分别添加如下代码

    UILabel * msg=[[UILabel alloc]init];
msg.text=@"哈哈好样的";
[self.view addSubview:msg];

8>编译运行就能得到一个tabbar的界面

4.代码下载

下载源码

iOS 用代码搭建UI界面实例的更多相关文章

  1. iOS 用代码+Xib搭建UI界面实例

    1.背景 有些我们不能只用代码去构建界面,代码是万能的,你用其他方式可以实现的界面,用代码也一定能 实现,但是我们没必要这样做,有的时候用xib会是更好的选择,代码和xib的优劣地方我们得知道,为了 ...

  2. 使用XML文件和Java代码控制UI界面

    Android推荐使用XML文件设置UI界面,然后用Java代码控制逻辑部分,这体现了MVC思想. MVC全名是Model View Controller,是模型(model)-视图(view)-控制 ...

  3. Android学习笔记(9):使用XML文件和Java代码控制UI界面

    Android推荐使用XML文件设置UI界面.然后用Java代码控制逻辑部分,这体现了MVC思想. MVC全名是Model View Controller.是模型(model)-视图(view)-控制 ...

  4. iOS纯代码制作欢迎界面——UIScrollView, UIPageControl, UIImageView,UIButton, NSTimer

    欢迎界面,还是比较简单的,一个UIScrollView控件,一个UIPageControl,几个UIImageView即可摆平.在这里光玩这些,就显得诚意不足了.特意拓展一下,再加几个UIButton ...

  5. (六十二)纯代码搭建UI

    在Xcode6中,去掉了Empty Application的选项,因此可以通过先创建SingleView,再删除storyboard,并且把工程设置中的main Interface清空. 通过AppD ...

  6. 用代码控制UI界面

           public class MainActivity extends Activity { //当第一次创建Activity时回调该方法 @Override protected void ...

  7. Android学习:代码控制UI界面示例

    package allegro.test2; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; im ...

  8. Spark UI界面原理

    当Spark程序在运行时,会提供一个Web页面查看Application运行状态信息.是否开启UI界面由参数spark.ui.enabled(默认为true)来确定.下面列出Spark UI一些相关配 ...

  9. Android控制UI界面

    ⒈使用XML布局文件控制UI界面[推荐] Android推荐使用XML布局文件来控制视图,这样不仅简单.明了,而且可以将应用的视图控制逻辑从Java或Kotlin代码中分离出来,放入XML文件中控制, ...

随机推荐

  1. AX 2012 EP服务器配置多个环境

    AX 2012 如何在一台服务器配置不同环境的EP站点 安装完EP后,修改对应站点的web.config文件,指定需要连接的客户端配置文件路径即可,如下图: ` ``````````````````` ...

  2. jsp 错误码debug记录与总结

    500: 编码错误: 无法向cookie中写入中文字符串 需要使用URLEncoder.Encode()在写入处进行转码,使用URLDecoder.decoder()在读取处进行解码 或者使用requ ...

  3. win7出现无法连接到代理服务器的错误,不能上网的问题的解决

    今天晚上突然停电,等我打开电脑发现不然上网,用google浏览器出现这个错误: 用IE诊断错误如下: 说是不能连到代理服务器,但是我没有连接到代理服务器啊,但是我的QQ能登,就是不能用浏览器上网,经过 ...

  4. 网络存储技术介绍(1) ( based on zt)

    最近由于某同学微信发了一些网络存储的文章,开始感兴趣,稍微收集了一些 一.  网络存储技术 http://ask.zol.com.cn/q/187044.html  (yxr:很老的技术介绍吧) 网络 ...

  5. 在SWING里嵌入SWT的组件

    http://zhanghan3366.blog.163.com/blog/static/6966305220110505351568/ ——————————————————————————————— ...

  6. js/json 数组的操作

    1.数组的创建 var arrayObj = new Array(); //创建一个数组 var arrayObj = new Array([size]); //创建一个数组并指定长度,注意不是上限, ...

  7. kali 虚拟机开启mysql:3306 供主机访问.

    mysql -u root -p use mysql; update user set host='ip' where user='root'; //更新访问权限 flush privileges; ...

  8. angularJS学习之旅(1)

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  9. VC++ CEdit

    CEDIT _1, //selection pEdit1->SetSel(0,strBuffer - m_strInput,0); pEdit1->SetFocus(); //the se ...

  10. MongoDB-JAVA-Driver 3.2版本常用代码全整理(3) - 聚合

    MongoDB的3.x版本Java驱动相对2.x做了全新的设计,类库和使用方法上有很大区别.例如用Document替换BasicDBObject.通过Builders类构建Bson替代直接输入$命令等 ...