本文是使用纯代码实现一个导航栏的效果。单击按钮并且产生事件。基本思路是:

1.创建一个导航栏(UINavigationBar对象)

2.创建一个导航栏集合(UINavigationItem对象)

3.创建一个左边按钮、一个右边按钮(UIBarButtonItem对象),并实现对应的事件方法

4.将导航栏集合添加到导航栏中,设置动画关闭

5.把左右两个按钮添加到导航栏集合中去

6.在视图中显示当前创建的导航栏

具体的实现代码如下:

ViewController.h文件中的代码不用改变,如下所示:

#import <UIKit/UIKit.h>@interface ViewController : UIViewController@end

ViewController.m文件中的代码:

#import "ViewController.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad
{[super viewDidLoad];// Do any additional setup after loading the view, typically from a nib.//创建一个导航栏UINavigationBar *navBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];//创建一个导航栏集合UINavigationItem *navItem = [[UINavigationItem alloc] initWithTitle:nil];//在这个集合Item中添加标题,按钮//style:设置按钮的风格,一共有三种选择//action:@selector:设置按钮的点击事件//创建一个左边按钮UIBarButtonItem *leftButton = [[UIBarButtonItem alloc] initWithTitle:@"左边" style:UIBarButtonItemStyleBordered target:self action:@selector(clickLeftButton)];//创建一个右边按钮UIBarButtonItem *rightButton = [[UIBarButtonItem alloc] initWithTitle:@"右边" style:UIBarButtonItemStyleDone target:self action:@selector(clickRightButton)];//设置导航栏的内容[navItem setTitle:@"凌凌漆"];//把导航栏集合添加到导航栏中,设置动画关闭[navBar pushNavigationItem:navItem animated:NO];//把左右两个按钮添加到导航栏集合中去[navItem setLeftBarButtonItem:leftButton];[navItem setRightBarButtonItem:rightButton];//将标题栏中的内容全部添加到主视图当中[self.view addSubview:navBar];//最后将控件在内存中释放掉,以避免内存泄露[navItem release];[leftButton release];[rightButton release];
}-(void)showDialog:(NSString *)str
{UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"这是一个对话框" message:str delegate:self cancelButtonTitle:@"确定" otherButtonTitles: nil];[alert show];[alert release];
}-(void) clickLeftButton
{[self showDialog:@"点击了导航栏左边按钮"];
}-(void) clickRightButton
{[self showDialog:@"点击了导航栏右边按钮"];
}- (void)viewDidUnload
{[super viewDidUnload];// Release any retained subviews of the main view.
}- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}@end

IOS导航栏的使用方法相关推荐

  1. ios 系统状态栏样式修改_iOS 一种新的修改导航栏样式的方法(支持iOS10).

    iOS 一种新的修改导航栏样式的方法. 开宗明义: 对系统导航栏最底层的UIView加一层CALayer, 通过操作这个自己创建的CALayer来修改导航栏样式. 修改系统导航栏样式的几种方法 1.使 ...

  2. iOS导航栏使用总结

    点击上方"程序员大咖",选择"置顶公众号" 关键时刻,第一时间送达! 作者:风恣 文:https://www.jianshu.com/p/50cd38f2772 ...

  3. 网站导航栏SEO优化方法

    当我们进去一个网站主页的时候,通常会先看导航栏有什么内容标题.然后根据自己的需求直接点击导航栏上所对应的标题,从而进去相关网页进行浏览.可以说,导航栏是网站的地图.能让用户更快更好地找到所需要的内容, ...

  4. iOS 导航栏隐藏和显示

    1: 导航栏隐藏.显示之间跳转 iOS 导航栏对于隐藏造成的动画 可以通过在 viewWillAppear 和 viewWillDisappear 来设置完成 - (void)viewWillAppe ...

  5. Android获取屏幕宽高,状态栏宽高,actionbar宽高,layout宽高,导航栏高度的方法汇总

    看这个博客你可以知道 获取屏幕宽高,状态栏宽高,actionbar宽高,layout宽高,导航栏(虚拟按键栏)高度的方法 目录顺序为 代码测试的机型 状态栏高度 actionbar高度 屏幕高度 导航 ...

  6. vue制作导航栏html,Vue如何实现导航栏菜单的方法

    Vue如何实现导航栏菜单的方法 发布时间:2020-08-20 09:42:45 来源:亿速云 阅读:235 作者:小新 这篇文章将为大家详细讲解有关Vue如何实现导航栏菜单的方法,小编觉得挺实用的, ...

  7. iOS 开发之 - iOS6适配 - 导航栏按钮透明方法

    首先上张图: 1:ios6导航栏默认按钮 rightBarButtonItem   是不是很丑的赶脚? 现在通过以下方法来改变以下:code: UIButton *rightButton = [UIB ...

  8. iOS导航栏标题错乱的解决方法

    一般隐藏和显示导航栏,只要在基类如下写就好: -(BOOL)needHiddenNavigationBar:(UIViewController *)vc{BOOL isHidden = NO;if ( ...

  9. iOS导航栏遮挡问题的总结

    一.背景:在做开发的时候经常不经意就出现导航栏遮挡主视图的情况,之前出现这种情况我会先看看View UI Hierarchy,然后把视图的坐标手动调整,例如把视图的y坐标写成64(建议封装成宏,因为有 ...

最新文章

  1. 要想进入顶级数据公司,2020年数据科学10大技能帮你加分
  2. C# WebBrowser document.execCommand()解析
  3. 520 钻石争霸赛 7-6 矩阵列平移(循环)
  4. 基于openfire源码开发插件
  5. 产品经理如何培养敏锐的商业嗅觉
  6. zip unzip命令行_Linux / Unix中的Zip和Unzip命令
  7. Mac OS 使用asio库
  8. Lync学习资料分享
  9. c++ vs2015 播放音乐_三星s20都取消了耳机孔,1k-2k的播放器会成为直推党新选择吗?...
  10. 考研这么卷,换条路试试​?互联网IT校园招聘信息大全!
  11. 计算机上面的按键作用,电脑键盘上各种键的作用是什么 电脑键盘上每个键的作用说明【图文】...
  12. 忍者必须死代码 免费
  13. 【离散数学】关于欧拉图与哈密顿图的讨论
  14. 最新Python教程全套合集项目实战(完整)
  15. upx脱壳工具_攻防世界simple_unpack_逆向之旅003
  16. 【bzoj2434】阿狸的打字机 AC自动机+树状数组
  17. Linux下轻松刻录CD-ROM数据光盘
  18. 港大计算机硕士面试多久有通知,港大计算机 HKU CS面试准备
  19. 自定义new Date()格式显示,适用JavaScript / Nodejs / Vue / React / UniApp / 其他基于js工程的项目
  20. Pybind11 的 CMakeList 说明

热门文章

  1. 降噪蓝牙耳机哪个牌子好?最便宜的蓝牙主动降噪耳机推荐
  2. 制作简单的div盒子
  3. linux服务器实现AD域认证,无线+ACS认证(本地或AD域认证)
  4. 如何在Word中使用MathType为公式编号并引用
  5. oracle分析函数——keep
  6. 2019牛客国庆集训派对day7题解
  7. mysql_config缺失_如何解决mysqlconfig缺失问题
  8. RPC是什么?RPC与REST、Socket的区别?php中流行的rpc框架有哪些?
  9. 漏洞复现-rides未授权访问
  10. COGNOS10启动服务报错 问题解决