热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

IOS入门开发之创建标题栏UINavigationBar的使用

转自:http://xys289187120.blog.51cto.com/3361352/685746

IOS 入门开发之创建标题栏UINavigationBar的使用

 

 

    IOS 开发有关界面的东西不仅可以使用代码来编写,也可以使用Interface Builder可视化工具来编写。今天有个朋友问我这两个有什么区别,首先说 说IB ,使用它编辑出来的控件其实底层还是调用代码只是苹果封装出来让开发者更好使用而已。它的优点是方便、快捷最重要的是安全,因为控件的释放它会帮我们完成 不用手动释放。缺点是多人开发不好维护,就好比谁写的IB谁能看懂,别人看的话就比较费劲,不利于代码的维护。两种方式各有利弊,不过我个人还是比较喜欢 纯代码,因为任何程序语言,或者任何脚本语言,代码和可视化工具比起来永远是最底层的。

IOS 入门开发之创建标题栏UINavigationBar的使用





利用代码在屏幕中添加一个标题栏,并且在标题栏左右两方在添加两个按钮,点击后响应这两个按钮。
这里设置标题栏的显示范围。

 

  1. //创建一个导航栏 
  2. UINavigationBar *navigationBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];  


  有了标题栏后,须要在标题栏上添加一个集合Item用来放置 标题内容,按钮等。

 

  1. //创建一个导航栏集合 
  2. UINavigationItem *navigationItem = [[UINavigationItem alloc] initWithTitle:nil];  

 

在这个集合Item中添加标题,按钮。

style:设置按钮的风格,一共有3中选择。
action:@selector:设置按钮点击事件。

  1. //创建一个左边按钮 
  2.   UIBarButtonItem *leftButton = [[UIBarButtonItem alloc] initWithTitle:@"左边"    
  3.                                                             style:UIBarButtonItemStyleBordered    
  4.                                                             target:self    
  5.                                                             action:@selector(clickLeftButton)];   
  6.  
  7.   //创建一个右边按钮 
  8.   UIBarButtonItem *rightButton = [[UIBarButtonItem alloc] initWithTitle:@"右边"    
  9.                                                                 style:UIBarButtonItemStyleDone    
  10.                                                                 target:self    
  11.                                                                 action:@selector(clickRightButton)];   
  12.   //设置导航栏内容 
  13.   [navigationItem setTitle:@"雨松MOMO程序世界"]; 



将标题栏中的内容全部添加到主视图当中。

 

  1. //把导航栏添加到视图中 
  2. [self.view addSubview:navigationBar];   



最后将控件在内存中释放掉,避免内存泄漏。

 

 

  1. //释放对象 
  2. [navigationItem release];   
  3. [leftButton release];   
  4. [rightButton release]; 





如图所示:添加这两个按钮的点击响应事件。

IOS 入门开发之创建标题栏UINavigationBar的使用

 

  1. -(void)clickLeftButton 
  2.      
  3.     [self showDialog:@"点击了导航栏左边按钮"]; 
  4.    
  5.  
  6.  
  7. -(void)clickRightButton 
  8.      
  9.     [self showDialog:@"点击了导航栏右边按钮"]; 
  10.      

 

 

IOS 入门开发之创建标题栏UINavigationBar的使用




点击后打开一个Dialog对话框,根据点击不同的按钮传入不同的显示内容。
 

  1. -(void)showDialog:(NSString *) str 
  2.     
  3.     UIAlertView * alert= [[UIAlertView alloc] initWithTitle:@"这是一个对话框" message:str delegate:self cancelButtonTitle:@"确定" otherButtonTitles: nil];     
  4.     
  5.     [alert show];       
  6.     [alert release]; 




最后贴上完整的代码

  1. #import "TitleViewController.h" 
  2.  
  3. @implementation TitleViewController 
  4.  
  5. - (void)didReceiveMemoryWarning 
  6.     // Releases the view if it doesn't have a superview. 
  7.     [super didReceiveMemoryWarning]; 
  8.      
  9.     // Release any cached data, images, etc that aren't in use. 
  10.  
  11. #pragma mark - View lifecycle 
  12.  
  13.  
  14. // Implement viewDidLoad to do additional setup after loading the view, typically from a nib. 
  15. - (void)viewDidLoad 
  16.     [super viewDidLoad]; 
  17.  
  18.  
  19.     //创建一个导航栏 
  20.     UINavigationBar *navigationBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];   
  21.      
  22.     //创建一个导航栏集合 
  23.     UINavigationItem *navigationItem = [[UINavigationItem alloc] initWithTitle:nil];   
  24.      
  25.     //创建一个左边按钮 
  26.     UIBarButtonItem *leftButton = [[UIBarButtonItem alloc] initWithTitle:@"左边"    
  27.                                                               style:UIBarButtonItemStyleBordered    
  28.                                                               target:self    
  29.                                                               action:@selector(clickLeftButton)];   
  30.  
  31.     //创建一个右边按钮 
  32.     UIBarButtonItem *rightButton = [[UIBarButtonItem alloc] initWithTitle:@"右边"    
  33.                                                                   style:UIBarButtonItemStyleDone    
  34.                                                                   target:self    
  35.                                                                   action:@selector(clickRightButton)];   
  36.     //设置导航栏内容 
  37.     [navigationItem setTitle:@"雨松MOMO程序世界"]; 
  38.      
  39.      
  40.     //把导航栏集合添加入导航栏中,设置动画关闭 
  41.     [navigationBar pushNavigationItem:navigationItem animated:NO];  
  42.      
  43.     //把左右两个按钮添加入导航栏集合中 
  44.     [navigationItem setLeftBarButtonItem:leftButton];  
  45.     [navigationItem setRightBarButtonItem:rightButton]; 
  46.       
  47.     //把导航栏添加到视图中 
  48.     [self.view addSubview:navigationBar];   
  49.      
  50.      
  51.     //释放对象 
  52.     [navigationItem release];   
  53.     [leftButton release];   
  54.     [rightButton release]; 
  55.  
  56.  
  57.  
  58. -(void)clickLeftButton 
  59.      
  60.     [self showDialog:@"点击了导航栏左边按钮"]; 
  61.    
  62.  
  63.  
  64. -(void)clickRightButton 
  65.      
  66.     [self showDialog:@"点击了导航栏右边按钮"]; 
  67.      
  68.  
  69.  
  70. -(void)showDialog:(NSString *) str 
  71.     
  72.     UIAlertView * alert= [[UIAlertView alloc] initWithTitle:@"这是一个对话框" message:str delegate:self cancelButtonTitle:@"确定" otherButtonTitles: nil];     
  73.     
  74.     [alert show];       
  75.     [alert release]; 
  76.  
  77. - (void)viewDidUnload 
  78.     [super viewDidUnload]; 
  79.     // Release any retained subviews of the main view. 
  80.     // e.g. self.myOutlet = nil; 
  81.  
  82. - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
  83.     // Return YES for supported orientations 
  84.     return (interfaceOrientation == UIInterfaceOrientationPortrait); 
  85.  
  86. @end 


 

最后如果你还是觉得我写的不够详细 看的不够爽 不要紧我把源代码的下载地址贴出来 欢迎大家一起讨论学习雨松MOMO希望可以和大家一起进步。
 
 
下载地址:http://down.51cto.com/data/263731

本文出自 “雨松MOMO的程序世界” 博客,请务必保留此出处http://xys289187120.blog.51cto.com/3361352/685746


推荐阅读
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • Linux环境变量函数getenv、putenv、setenv和unsetenv详解
    本文详细解释了Linux中的环境变量函数getenv、putenv、setenv和unsetenv的用法和功能。通过使用这些函数,可以获取、设置和删除环境变量的值。同时给出了相应的函数原型、参数说明和返回值。通过示例代码演示了如何使用getenv函数获取环境变量的值,并打印出来。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 如何自行分析定位SAP BSP错误
    The“BSPtag”Imentionedintheblogtitlemeansforexamplethetagchtmlb:configCelleratorbelowwhichi ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • C# 7.0 新特性:基于Tuple的“多”返回值方法
    本文介绍了C# 7.0中基于Tuple的“多”返回值方法的使用。通过对C# 6.0及更早版本的做法进行回顾,提出了问题:如何使一个方法可返回多个返回值。然后详细介绍了C# 7.0中使用Tuple的写法,并给出了示例代码。最后,总结了该新特性的优点。 ... [详细]
  • 本文介绍了关于汉庭酒店价格的知识点,提供了一篇由congdi7904投稿的技术文章,希望能帮到读者解决相关技术问题。同时还提供了汉庭酒店的官方链接和转载信息。请注意,引用汉庭酒店需遵循CC 4.0 BY-SA版权协议。 ... [详细]
  • 本文介绍了在Vue项目中如何结合Element UI解决连续上传多张图片及图片编辑的问题。作者强调了在编码前要明确需求和所需要的结果,并详细描述了自己的代码实现过程。 ... [详细]
author-avatar
我家在波力牧场
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有