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. hive 全局排序

    不分发数据,使用单个reducer ; select * from dw.dw_app where dt>='2016-09-01' and dt <='2016-09-18' order ...

  2. zookeeper节点失效重连机制

    http://www.blogjava.net/xylz/archive/2011/12/05/365578.html http://blog.csdn.net/tswisdom/article/de ...

  3. linux vim 替换指定字符为回车

    有个问题,想要知道逗号分隔的字符串  example: aaa,bbb,ccc 分隔后的个数 1 将   aaa,bbb,ccc 替换成 aaa bbb ccc 方法: :%s/,/^M/g ^M是用 ...

  4. An attempt was made to load a program with an incorrect format

      用.net调用一个C++ 32位的DLL, 编译的时候选择x86, 在部署到一个64位的机器上的时候报错:"An attempt was made to load a program w ...

  5. Cocos2d-JS 自定义loading界面

    [转]http://blog.csdn.net/et_sandy/article/details/41415047 环境: win7 64位 Cocos2d-JS v3.1 Cocos Code ID ...

  6. 【过程改进】10分钟进阶Nuget

    目录 nuget初识 nuget本地包 nuget解决依赖冲突 nuget是什么 .net版的maven(java)? 如果你用过windows的chocolatey,mac的homebrew或许更容 ...

  7. Linux shell之sed

    sed编辑器逐行处理输入,然后把结果发送到屏幕. -i选项:直接作用源文件,源文件将被修改. sed命令和选项: a\ 在当前行后添加一行或多行 c\ 用新文本替换当前行中的文本 d 删除行 i\ 在 ...

  8. Linux(centos)系统各个目录的作用详解

    Linux(centos)系统各个目录的作用详解 文件系统的类型 LINUX有四种基本文件系统类型:普通文件.目录文件.连接文件和特殊文件,可用file命令来识别. 普通文件:如文本文件.C语言元代码 ...

  9. MySQL的错误:No query specified

    在做MySQL主从同步的时候通过: mysql> show slave status\G; *************************** 1. row **************** ...

  10. strcat strcpy 使用出现的问题汇总

    事例1(转)  在程序中多次用的strcat函数,但是有时候编译通过,但是执行时却出现了错误.为了进一步了解strcat函数的使用,我首先写了这样的一个测试程序: main(){       char ...