IOS学习之UINavigationController详解与使用:添加UIBarButtonItem (转)

iOS导航控制器——UINavigationController使用详解 一、概述 UINavigationController用来管理视图控制器,在多视图控制器中常用。它以栈的形式管理视图控制器,管理视图控制器个数理论上不受限制(实际受内存限制),push和pop方法来弹入弹出控制器,最多只能显示一个视图控制器,那就是处于栈顶的视图控制器。 一般情况下,UINavigationController最少管理一个控制器,即最少有一个根视图控制器或者叫做栈底视图 阅读详情

1、UINavigationController导航控制器如何使用

UINavigationController可以翻译为导航控制器,在IOS里经常用到。

我们看看它的如何使用:

下面的图显示了导航控制器的流程。最左侧是根视图,当用户点击其中的General项时 ,General视图会滑入屏幕;当用户继续点击Auto-Lock项时,Auto-Lock视图将滑入屏幕。相应地,在对象管理上,导航控制器使用了导航堆栈。根视图控制器在堆栈最底层,接下来入栈的是General视图控制器和Auto-Lock视图控制器。可以调用pushViewControllerAnimated:方法将视图控制器推入栈顶,也可以调用popViewControllerAnimated:方法将视图控制器弹出堆栈。

IOS学习之UINavigationController详解与使用:添加UIBarButtonItem (转) - ♂苹果 - 眼睛想旅行

 

上图来自苹果官网。


2、UINavigationController的结构组成

看下图,UINavigationController有Navigation bar  ,Navigation View ,Navigation toobar等组成。

IOS学习之UINavigationController详解与使用:添加UIBarButtonItem (转) - ♂苹果 - 眼睛想旅行

 


现在我们建立一个例子,看看如何使用UINavigationController

3、新建一个项目

命名为UINavigationControllerDemo,为了更好理解UINavigationController,我们选择Empty Application模板

IOS学习之UINavigationController详解与使用:添加UIBarButtonItem (转) - ♂苹果 - 眼睛想旅行

 

4、创建一个View Controller,命名为RootViewController:依次选择File——New——New File,默认勾上With XIB for user interface.

IOS学习之UINavigationController详解与使用:添加UIBarButtonItem (转) - ♂苹果 - 眼睛想旅行

 

选择正确位置创建完成,这时项目里多了三个文件,分别是RootViewController.h RootViewController.m RootViewController.xib文件。

打开RootViewController.xib,添加一个按钮控件,按钮Button改成 :Goto SecondView,为跳转做准备

IOS学习之UINavigationController详解与使用:添加UIBarButtonItem (转) - ♂苹果 - 眼睛想旅行

 


5、打开AppDelegate.h,向其中添加属性:


[cpp] view plaincopy
@property (strong, nonatomic) UINavigationController *navController;  
添加后AppDelegate.h文件代码如下:


[cpp] view plaincopy
#import    
  
@class ViewController;  
  
@interface AppDelegate : UIResponder    
  
@property (strong, nonatomic) UIWindow *window;  
  
@property (strong, nonatomic) ViewController *viewController;  
  
@property (strong, nonatomic) UINavigationController *navController;  
  
@end  
6、在AppDelegate.m 文件的didFinishLaunchingWithOptions方法中创建添加navController,RootViewController视图。


[cpp] view plaincopy
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions  
{  
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];  
    RootViewController *rootView = [[RootViewController alloc] init];  
    rootView.title = @"Root View";  
      
    self.navController = [[UINavigationController alloc] init];  
    [self.navController pushViewController:rootView animated:YES];  
    [self.window addSubview:self.navController.view];  
    [self.window makeKeyAndVisible];  
    return YES;  
}  
给rootView的titie命名为 Root View,好识别View直接的切换关系。用pushViewController把rootView加入到navController的视图栈中。

7、现在Root视图添加完成

看看效果:

IOS学习之UINavigationController详解与使用:添加UIBarButtonItem (转) - ♂苹果 - 眼睛想旅行

 '

现在还没有Navigation bar 。只有title。

8、添加UIBarButtonItem

bar ButtonItem分左右UIBarButtonItem。我们把左右的都添加上去。

在RootViewController.m中添加代码如下:


[cpp] view plaincopy
- (void)viewDidLoad  
{  
    [super viewDidLoad];  
  
    UIBarButtonItem *leftButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction target:self action:@selector(selectLeftAction:)];  
    self.navigationItem.leftBarButtonItem = leftButton;  
      
    UIBarButtonItem *rightButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd  target:self action:@selector(selectRightAction:)];  
    self.navigationItem.rightBarButtonItem = rightButton;

}

  
这样添加了UIBarButtonItem了,效果如下:

 

IOS学习之UINavigationController详解与使用:添加UIBarButtonItem (转) - ♂苹果 - 眼睛想旅行

 


这里重点介绍下

UIBarButtonItem *leftButton = [[UIBarButtonItemalloc]initWithBarButtonSystemItem:UIBarButtonSystemItemActiontarget:selfaction:@selector(selectLeftAction:)];

UIBarButtonSystemItemAction的风格,这是系统自带的按钮风格,看下图,你不用一个个试验,你也知道想用那个item,如下图:

IOS学习之UINavigationController详解与使用:添加UIBarButtonItem (转) - ♂苹果 - 眼睛想旅行

 

IOS学习之UINavigationController详解与使用:添加UIBarButtonItem (转) - ♂苹果 - 眼睛想旅行

 

9、响应UIBarButtonItem的事件的实现

我们在 action:@selector(selectLeftAction:);

action添加了selectLeftAction和selectRightAction

在RootViewController.m文件中添加代码实现:


[cpp] view plaincopy
-(void)selectLeftAction:(id)sender  
{  
    UIAlertView *alter = [[UIAlertView alloc] initWithTitle:@"提示" message:@"你点击了导航栏左按钮" delegate:self  cancelButtonTitle:@"确定" otherButtonTitles:nil, nil];  
    [alter show];  
}  
  
-(void)selectRightAction:(id)sender  
{  
    UIAlertView *alter = [[UIAlertView alloc] initWithTitle:@"提示" message:@"你点击了导航栏右按钮" delegate:self  cancelButtonTitle:@"确定" otherButtonTitles:nil, nil];  
    [alter show];  
}  
这样在点击左右的UIBarButtonItem时,弹出提示:

IOS学习之UINavigationController详解与使用:添加UIBarButtonItem (转) - ♂苹果 - 眼睛想旅行

 

例子代码:https://github.com/schelling/YcDemo


转自: http://www.189works.com/article-73001-1.html
波束形成算法:LCMV实现(MATLAB) 阵列信号处理,波束成形, 阅读详情

相关推荐

DSP TMS320C6657中FFT函数的调用与具体使用方法

首先明确一点,C6678中FFT的函数形式为: N : length of FFT in complex samples ptr_x : pointer to complex data input ptr_w : pointer to complex twiddle factor ptr_y : pointer to complex output data brev : pointer to bit reverse table containing 64 entries n_min : should be

Kayboy的博客 3012

UI学习——导航控制器

本篇文章将介绍导航控制器的基础和切换以及导航栏和工具栏

m0_73974920的博客 1608

UE5 Paper2D性能优化:GroupedSpriteSceneProxy合批渲染原理与实践

在游戏开发中,渲染性能优化是核心技术挑战之一,其核心原理在于减少CPU与GPU之间的通信开销,特别是降低Draw Call数量。Draw Call是CPU向GPU提交绘制命令的指令,每次调用都涉及状态切换和数据传输,当场景中存在大量同质化对象时,频繁的Draw Call会成为主要性能瓶颈。为此,现代图形引擎普遍采用合批渲染技术,其技术价值在于将多个共享相同渲染状态(如材质、几何体)的物体数据合并提交,从而将多次Draw Call压缩为一次或少数几次,显著提升渲染效率。这一技术在2D游戏开发中尤为重要,例如在

weixin_34198453的博客 395

UINavigationController--导航控制器

继承关系NSObject->UIResponder->UIViewController->UINavigationControllerUIViewController相关的属性配置说明: 下面三个属性,都是针对view controller的父控制器是navigation controller的情景1、如果view controller加入到navigation controller,那么属性na

笨鱼@Blog 783

生成式引擎优化(GEO)的概念与技术路径

生成式引擎优化(GEO)是针对生成式AI引擎的新型优化策略,旨在提升内容在AI搜索与问答平台中的可见性和可信度。与传统SEO相比,GEO更注重语义理解、知识图谱和多模态生成等技术,通过优化内容的结构化和平台适配性,使品牌信息在生成式AI中更易被采纳和呈现。其核心技术包括语义理解、向量数据库和实时反馈优化等,应用于品牌传播、智能客服和个性化推荐等领域。随着AI技术发展,GEO将向智能化、自动化方向演进,成为内容优化的重要工具。

Baixue5209的博客 1047

Ubuntu20.04 高效安装企业微信的完整指南

本文提供了在Ubuntu20.04系统上高效安装企业微信的完整指南,详细介绍了通过Deepin-wine环境运行Windows版企业微信的步骤和优化技巧。内容包括系统环境检查、依赖安装、企业微信包的获取与安装、首次运行配置及常见问题解决方案,帮助开发者在Ubuntu系统中流畅使用企业微信进行办公通讯。

weixin_42568801的博客 353

UINavigationController 详解(最全的)

UINavigationController即导航控制器,是iOS里最常用的交互控件之一。下面介绍一下它的详细用法以及一些小的技巧 一.UINavigationController的结构组成。 看下图,UINavigationController有Navigation bar  ,Navigation View ,Navigation toobar等组成。 二

iOS技术分享与学习博客 806

[CSP-X2025山东小学组T4]勇者斗恶龙

[CSP-X2025山东小学组T4]勇者斗恶龙,动态规划

少儿编程乔老师 150

IOS学习之UINavigationController详解与使用(一)添加UIBarButtonItem

1、UINavigationController导航控制器如何使用UINavigationController可以翻译为导航控制器,在IOS里经常用到。我们看看它的如何使用:下面的图显示了导航控制器的流程。最左侧是根视图,当用户点击其中的General项时 ,General视图会滑入屏幕;当用户继续点击Auto-Lock项时,Auto-Lock视图将滑入屏幕。相应地,在对象管理上,导航控制器使用了...

weixin_34067102的博客 314

C#上位机面试必问30题:机器视觉+工业通信+性能优化(含答案解析)

工业通信:围绕“稳定性”展开,重点答异常处理、断线重连、资源释放;机器视觉:围绕“精度+速度”展开,重点答预处理、ROI、参数优化;性能优化:围绕“UI不卡、内存不泄、效率不低”展开,重点答异步、限流、资源复用;面试加分项:结合实际项目案例(如“我在XX项目中用信号量解决了多设备并发卡顿问题”)。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1510

uniapp开发小程序保存图片权限获取失败一直走fail?本地能保存,线上版就不行! 原来是这个问题!

通过这次经历,我发现线上版小程序和开发版、体验版的权限控制差异较大。如果你也遇到类似的问题,首先要检查是否已勾选“采集用户隐私”,并确保在提交审核时配置了隐私条款。这个设置非常关键,避免像我一样浪费了不少时间和版本。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1077

iOS开发之UI篇(14)—— UINavigationController

版本 Xcode 10.2 iPhone 6s (iOS12.4) 目录版本继承关系简介创建切换视图控制器UINavigationBarUIToolBar其他属性方法监听返回按键 继承关系 ViewController : UIViewController : UIResponder UIResponder : NSObject 简介 导航控制器是容器视图控制器,其管理导航界面中的一个或多个子视...

看影成痴 970

11年电赛综合测评——单运放三角波发生器

目录 背景知识科普: 原理:局部负反馈+大环负反馈+积分器 仿真图如下: 背景知识科普: 反馈电路是将放大器输出信号(电压或电流)的一部分或全部,回收到放大器输入端与输入信号进行比较(相加或相减),并用比较所得的有效输入信号去控制输出,这就是放大器的反馈过程。 一、反馈放大器反馈极性的经验分析法—符号法 分析步骤1.在输入端上加上一个“+”或“-”的输入信号,按瞬时极性法标出反馈放大器中各个电极(基极b,集电极c,发射极e)电压的瞬时性。 2.判断经放大和反馈后得到的反馈信号Xf的瞬时极性

沉迷单车的追风少年 9906

[转]iOS学习之UINavigationController详解与使用(一)添加UIBarButtonItem

转载地址:http://blog.youkuaiyun.com/totogo2010/article/details/7681879 1、UINavigationController导航控制器如何使用 UINavigationController可以翻译为导航控制器,在iOS里经常用到。 我们看看它的如何使用: 下面的图显示了导航控制器的流程。最左侧是根视图,当用户点击其中的General项时 ,Ge...

weixin_30594001的博客 76

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

(转)IOS学习之UINavigationController详解与使用(一)添加UIBarButtonItem

 1、UINavigationController导航控制器如何使用 UINavigationController可以翻译为导航控制器,在iOS里经常用到。 我们看看它的如何使用: 下 面的图显示了导航控制器的流程。最左侧是根视图,当用户点击其中的General项时,General视图会滑入屏幕;当用户继续点击Auto-Lock项时,Auto-Lock视图将滑入屏幕。相应地,在对象

pq1051288217的博客 311

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

iOS学习之UINavigationController详解与使用(一)添加UIBarButtonItem

1、UINavigationController导航控制器如何使用UINavigationController可以翻译为导航控制器,在iOS里经常用到。我们看看它的如何使用:下面的图显示了导航控制器的流程。最左侧是根视图,当用户点击其中的General项时 ,General视图会滑入屏幕;当用户继续点击Auto-Lock项时,Auto-Lock视图将滑入屏幕。相应地,在对象管理上,导航控制器使用了

空杯子 21万+

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Swift 4 UINavigationController导航栏添加按钮UIBarButtonItem无效

设置UINavigationController的rootViewController属性后,root页面的上方会自动补充一个导航栏(实际上是Navigation Item),如下: 如果是使用StoryBoard,我们可以直接拖拽UIBarButtonItem加入按钮。 如果我们使用的是代码控制页面跳转,怎么在跳转后的页面上添加UIBarButtonItem呢?可以如下面这样写: /// My...

Xu_JL1997的博客 2517

IOS 关于UINavigationController的使用

前言 最近理了一下UINavigationBar,发现UINavigationController使用的时候有很多问题。所以结合自己使用的理解,总结一下。 UINavigationController 用来管理 UIViewController(视图控制器),它以栈的形式管理,UIViewController个数理论上不受限制(当然内存还是要考虑的),push和pop方法来弹入弹出UIViewCo...

sky_long_fly的专栏 4268

iOS 【UIKit-UINavigationController详解与使用(一)添加UIBarButtonItem】

1、UINavigationController导航控制器如何使用 UINavigationController可以翻译为导航控制器,在iOS里经常用到。 我们看看它的如何使用: 下面的图显示了导航控制器的流程。最左侧是根视图,当用户点击其中的General项时 ,General视图会滑入屏幕;当用户继续点击Auto-Lock项时,Auto-Lock视图将滑入屏幕。相应地,在对象管理上,

CoderZYWang 973

iOS学习之UINavigationController详解与使用(三)ToolBar

iOS学习之UINavigationController详解与使用(二)页面切换和segmentedController  接上篇,我们接着讲Navigation 的Toolbar。1、显示Toolbar 在RootViewController.m的- (void)viewDidLoad方法中添加代码,这样Toobar就显示出来了。 [self.navigationController s

空杯子 8万+

IOS学习之UINavigationController详解与使用:添加UIBarButtonItem

1、UINavigationController导航控制器如何使用 UINavigationController可以翻译为导航控制器,在IOS里经常用到。 我们看看它的如何使用: 下面的图显示了导航控制器的流程。最左侧是根视图,当用户点击其中的General项时 ,General视图会滑入屏幕;当用户继续点击Auto-Lock项时,Auto-Lock视图将滑入屏幕。相应地,在

iOS开发笔记 1057

UINavigationController使用之手动添加UIBarButtonItem

原文地址;http://blog.youkuaiyun.com/totogo2010/article/details/7681879 1、UINavigationController导航控制器如何使用 UINavigationController可以翻译为导航控制器,在iOS里经常用到。 我们看看它的如何使用: 下面的图显示了导航控制器的流程。最左侧是根视图,当用户点击

coder 1166

IOS学习之UINavigationController详解与使用(三)ToolBar

IOS学习之UINavigationController详解与使用(二)页面切换和segmentedController  接上篇,我们接着讲Navigation 的Toolbar。 1、显示Toolbar  在RootViewController.m的- (void)viewDidLoad方法中添加代码,这样Toobar就显示出来了。 [cpp]

新风作浪的博客专栏 6307

iOS学习之UINavigationController详解与使用

1、UINavigationController导航控制器如何使用 UINavigationController可以翻译为导航控制器,在iOS里经常用到。 我们看看它的如何使用: 下面的图显示了导航控制器的流程。最左侧是根视图,当用户点击其中的General项时 ,General视图会滑入屏幕;当用户继续点击Auto-Lock项时,Auto-Lock视图将滑入屏幕。相应地,在

u013360565的专栏 350
上一篇: UITabBarController使用(转)
下一篇: UIScrollView的详细讲解(转)
woodcol
博客等级 码龄19年 288粉丝 429原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值