iOS开发-UINavigationController简单实现

导航条或者说导航栏目现在在App中基本上也算是标配,类似于父子级别的味道在里面,UINavigationController就是负责简化这一实现功能的,属于iOS开发中比较常用的一种容器View controller,很多人都用,实现起来相对比较容易,可以先看张图片了解NavigationController:

界面布局

上面看着很高大上,下面看个个人的,从控件库中拖入一个Navigation Controller,然后新建两个ViewController:

拖入的一个NavigationController可以直接使用,需要演示,后面有多加了一个View:

Demo实现

主页的ViewController中初始化一下数据:

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    data=[[NSArray alloc] initWithObjects:@"前端",@"后端",nil];
    [self.tableView setDelegate:self];
    [self.tableView setDataSource:self];
}

 设置组数,行数和内容:

}
//分组的数量
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
    return 1;
}

//分组的行数
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
    return [data count];
}
//返回TableCell中内容
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{

    UITableViewCell *cell=[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil];

    [cell.textLabel setText:data[indexPath.row]];

    return cell;
}

 设置行高:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
    return 40;
}

 设置跳转事件:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
    NSArray *notificationData=[[NSArray alloc]init];
    NSInteger index=[self.tableView indexPathForSelectedRow].row;
    if (index==0) {
        notificationData=[[NSArray alloc]initWithObjects:@"Android",@"iOS",@"JS",nil];
    }else{
        notificationData=[[NSArray alloc]initWithObjects:@"Java",@"C#",@"Python",nil];
    }

    SecondViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"SecondStoryID"];
    controller.data=notificationData;
    [self.navigationController pushViewController:controller animated:YES];

}

 详情的ViewController和第一个类似,之前已经写过很多TableView的实现,直接贴代码,就不一一解释:

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

}
- (void)notificationHandler:(NSNotification *)notification{
    self.data=[notification object];
}
//分组的数量
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
    return 1;
}

//分组的行数
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
    return [self.data count];
}
//返回TableCell中内容
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    UITableViewCell *cell=[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil];
    [cell.textLabel setText:self.data[indexPath.row]];
    NSLog(@"%@",self.data[indexPath.row]);
    return cell;
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
    return 40;
}

不过详情的头文件中要设置一下:

@interface SecondViewController : UIViewController

@property (nonatomic,strong) NSArray *data;

@end

最终实现的效果如下:

绿色背景的导航条需要个人设置:

时间: 2024-10-12 20:26:04

iOS开发-UINavigationController简单实现的相关文章

IOS开发之简单音频播放器

今天第一次接触IOS开发的UI部分,之前学OC的时候一直在模拟的使用Target-Action回调模式,今天算是真正的用了一次.为了熟悉一下基本控件的使用方法,和UI部分的回调,下面开发了一个特别简易的音频播放器,来犒劳一下自己这一天的UI学习成果.在用到UI的控件时如果很好的理解之前博客在OC中的Target-Action回调模式,感觉控件的用法会很顺手.下面的简易播放器没有用到多高深的技术,只是一些基本控件和View的使用. 话不多说简单的介绍一下今天的音频播放器.在播放器中我们用到了UIP

iOS开发-UIActivityIndicatorView简单使用

软件开发的时候经常会遇到半天才加载出来数据的情况,不管是程序写的烂,还是说本来网速比较慢,一般都都会给个提示让用户感觉到我们在努力的加载数据,iOS可以通过UIActivityIndicatorView实现类似的效果.UIActivityIndicatorView提供轻型视图,会显示一个标准的旋转进度轮,只要添加到程序中,在合适的地方start和stop即可.start的时候可以吸附在当前视图中,stop的时候就会移除~ 简答的效果: 实现方式如下: self.activityIndicator

iOS开发-UIActionSheet简单介绍

UIActionSheet和UIAlertView都是ios系统自带的模态视图,模态视图的一个重要的特性就是在显示模态视图的时候可以阻断其他视图的事件响应.一般情况下我们对UIAlertView使用的比较多,UIActionSheet相对来说情况少一点,偶尔作为一个上拉菜单来展示还是非常有用的.通常如果显示一个模态的视图,可以自定义一个UIViewController,不过里面的内容和动画实现起来工作量还是非常多的. UIActionSheet介绍 介绍UIActionSheet之前需要简单的看

IOS开发之简单计算器

用Object-C写的一个简单的计算机程序,主要学习按钮的action动作. 以下是主界面: 以下代码时界面按钮和ViewController.h连接的地方: - (IBAction)button_0:(UIButton *)sender; - (IBAction)button_dian:(UIButton *)sender; - (IBAction)button_dengyu:(UIButton *)sender; - (IBAction)button_1:(UIButton *)sender

iOS开发 -- 实现简单的定位功能

一.定位的说明 现在的应用很多都拥有定位功能.确实,定位功能是很好用的,对我们的生活也有很大的帮助.例如帮你找酒店,找银行等等... 要实现定位有三种方式:   1. 手机基站:(依赖于手机机战(信号塔)的密集程度)  2. GPS:卫星定位,精确度高,但是费电     3. WIFI:根据上网的IP地址,(必须要能上网) 而我们开发中一般都是用GPS定位比较多,我们要实现定位需要用到CoreLocation框架,CoreLocation中主要包含了定位.地理编码(包括反编码)功能. 在iOS8

ios开发之--简单动画效果的添加

记录一个简单的动画效果,自己写的,很简单,仅做记录. 附一个demo的下载地址: https://github.com/hgl753951/hglTest.git 代码如下: 1,准备 BOOL _isOpen; NSMutableArray * _btnArray; 2,具体代码 -(void)initUI { _btnArray = [[NSMutableArray alloc]init]; for (int i=0; i<4; i++) { UIButton * btn = [UIButt

IOS开发-手势简单使用及手势不响应处理办法

1.点击 2.长按 3.拖拽 4.轻扫.捏合.旋转 5.使用手势需要注意的地方 1.注意处理轻扫和拖拽的冲突 //那个时间短的话 就让那个先执行 //处理 拖拽和轻扫 两个手势的冲突 //需要轻扫手势执行完毕后 再去执行拖拽 先执行轻扫后 再执行拖动 处理方法: [panges(拖拽对象) requireGestureRecognizerToFail:swiges(轻扫对象)]; 2.程序出现手势不响应处理方法 //    手势如果不响应 //    1.看是否添加到了imageView上 如果

ios开发之简单实现loading动画效果

最近有朋友问我类似微信语音播放的喇叭动画和界面图片加载loading界面是怎样实现的,是不是就是一个gif图片呢!我的回答当然是否定了,当然不排除也有人用gif图片啊!下面我就来罗列三种实现loading动画效果的方法. 方法一:使用UIImageView自带的方法来实现,这也是我推荐的实现方法. NSMutableArray *array = [[NSMutableArray alloc] initWithObjects:[UIImage imageNamed:@"1.png"],[

我的iOS开发系列博文

之前目录性的总结了发表过的关于OC方面的文章,今天在目录性的总结一下有关iOS开发的文章.走过路过不要错过哦,今天的博文也全都是干货.写技术博客与大家交流一下思想也是不错的. 下面是我的技术博客中有关iOS开发的内容,有初级部分也有高级部分,有旧的东西,也有新的东西.咸蛋就先扯到这儿,正文走起: 我的iOS系列博文如下:   01.iOS开发之简单音频播放器 02.iOS开发之视图和视图控制器 03.iOS开发之绝对布局和相对布局(屏幕适配) 04.iOS开发之自动布局显示网络请求内容 05.i