博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS开发-UINavigationController简单介绍
阅读量:6091 次
发布时间:2019-06-20

本文共 3032 字,大约阅读时间需要 10 分钟。

导航条或者说导航栏目现在在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

最终实现的效果如下:

 

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

 

转载于:https://www.cnblogs.com/xiaofeixiang/p/4251837.html

你可能感兴趣的文章
CRC 自动判断大端 小端
查看>>
原来这样可以轻松恢复回收站删除文件
查看>>
DisparityCostVolumeEstimator.cpp
查看>>
(转)git中关于fetch的使用
查看>>
mongo DB for C#
查看>>
caffe整体框架的学习的博客,这个博客山寨了一个caffe框架
查看>>
git只拉取github部分代码的方法
查看>>
[LeetCode] Construct Quad Tree 建立四叉树
查看>>
如何避免SHRINKDATABASE & SHRINKFILE 产生索引碎片(转载)
查看>>
【SSH网上商城项目实战02】基本增删查改、Service和Action的抽取以及使用注解替换xml...
查看>>
高阶函数简述 js
查看>>
Java CompletableFuture:allOf等待所有异步线程任务结束
查看>>
Highmaps网页图表教程之图表配置项结构与商业授权
查看>>
mysql 5.6.33发布
查看>>
java 获取URL链接 内容
查看>>
Linux 命令详解(二)awk 命令
查看>>
Android动态载入Dex机制解析
查看>>
PostgreSQL数据库中的常见错误
查看>>
jquery 控制 video 视频播放和暂停
查看>>
XCode调试多线程遭遇海森伯效应一例
查看>>