UINavgationViewController详解

如何简单的实现UINavigationViewController侧滑返回上一页功能 立即下载

一. UINavgationViewController简介

1.继承关系

UINavgationViewController继承自UIViewController,它的内部结构为:导航条,导航控制器的view,存放导航控制器子控制器的view

2.使用场景

UINavigationController一般用来管理有层次关系的视图,它可以轻松地管理多个控制器,轻松完成控制器之间的切换,典型例子就是系统自带的“设置”应用到导航控制器

3.基本概念

父控制器:通过导航控制器管理多个子控制器,导航控制器就称为父控制器
子控制器:压入栈的控制器都做作为导航控制器的子控制器
栈底控制器:压入栈的第一个子控制器称栈底控制器,也叫导航控制器的根控制器
栈顶控制器:当前显示在导航控制器上的子控制器
自动出栈:点击导航条上的返回按钮,系统会让当前控制器出栈
主动出栈:通过调用导航控器提供的出栈方法执行出栈
导航条:为APP使用者提供一定的途径,使其可以方便地访问到所需的内容
工具条:和导航条类似
导航控制的代理:用于监听导航控制器的操作

二. UINavgationViewController常见属性

// 栈顶控制器
@property(nonatomic,readonly,retain) UIViewController *topViewController;
// 当前显示的控制器
@property(nonatomic,readonly,retain) UIViewController *visibleViewController;
// 栈里的所有控制所组成的数组
@property(nonatomic,copy) NSArray *viewControllers;
// 设置隐藏导航条,默认NO
@property(nonatomic,getter=isNavigationBarHidden) BOOL navigationBarHidden;
// 导航条
@property(nonatomic,readonly) UINavigationBar *navigationBar;
// 隐藏工具条,默认YES
@property(nonatomic,getter=isToolbarHidden) BOOL toolbarHidden
// 工具条
@property(nonatomic,readonly) UIToolbar *toolbar;
// 设置手势识别
@property(nonatomic, readonly) UIGestureRecognizer *interactivePopGestureRecognizer;
// 当键盘出现的时候隐藏导航条与工具条
@property (nonatomic, readwrite, assign) BOOL hidesBarsWhenKeyboardAppears;
// 上下滑动的时,隐藏和显示导航条与工具条
@property (nonatomic, readwrite, assign) BOOL hidesBarsOnSwipe;
// 设置手势识别滑动,隐藏和显示导航条与工具条
@property (nonatomic, readonly, retain) UIPanGestureRecognizer *barHideOnSwipeGestureRecognizer;
// 当导航栏的垂直size比较紧凑时,导航栏自动隐藏
@property (nonatomic, readwrite, assign) BOOL hidesBarsWhenVerticallyCompact;
// 点击屏幕,隐藏和显示导航条与工具条
@property (nonatomic, readwrite, assign) BOOL hidesBarsOnTap;
// 设置手势识别点击,隐藏和显示导航条与工具条
@property (nonatomic, readonly, assign) UITapGestureRecognizer *barHideOnTapGestureRecognizer;

三. UINavgationViewController常见方法

// 用自定义的导航条类和工具条类初始化导航控制器,为空时,默认是UINavigationBar和UIToolbar
- (instancetype)initWithNavigationBarClass:(Class)navigationBarClass toolbarClass:(Class)toolbarClass;
// 用控制器rootViewController初始化导航控制器的根控制器
- (instancetype)initWithRootViewController:(UIViewController *)rootViewController;
// 控制器入栈
- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated;
// 控制器出栈,方法返回出栈的控制器
- (UIViewController *)popViewControllerAnimated:(BOOL)animated;
// 出栈到子控制器viewController,方法返回所有出栈的控制器组成的数组
- (NSArray *)popToViewController:(UIViewController *)viewController animated:(BOOL)animated;
// 出栈到根控制器,方法返回所有出栈的控制器组成的数组
- (NSArray *)popToRootViewControllerAnimated:(BOOL)animated;
// 显示控制vc
- (void)showViewController:(UIViewController *)vc sender:(id)sender

四. UINavigationController的代理

要先设置UINavigationController的代理,并且实现代理方法

// 当即将显示viewController时调用
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated;
// 当显示完成viewController时调用
- (void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated;

五. UINavigationController的知识点

(一). 关于导航控制器

1. 添加导航控制器的根控制器,默认第一个子控制器叫根控制器

a. push一个控制器

  // 创建导航条的根控制器
  UIViewController *vc = [[OneViewController alloc] init];
  // push一个控制器,第一个控制默认是根根控制器
  [nav pushViewController:vc animated:YES];

b. 创建导航控制器的时候就给一个根控制器

  // 创建导航条的根控制器
  UIViewController *vc = [[OneViewController alloc] init]; 
  // 创建导航条控制
  UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:vc];

2. 管理很多子控制器

a. Push或者Pop子控制器就可以进行管理
b. 不要一下子Push或者Pop很多个控制器,跳转控制器的权利应该交给用户,由用户决定进入那个界面

3. 控制器之间的导航

给A控制器添加导航功能,是点击A控制器上的控件,导航到B控制器

4. 导航控制器的作用

用来做导航功能,一个控制器如果想拥有导航功能,就要包装成导航控制器

5.导航控制器的管理原理

a. 导航控制器是通过栈来管理子控制器,栈是先进后出
b. push把控制器压入栈,然后创建控制器的view,再把控制器的view添加到导航控制器上
c. 子控制器入栈后,显示到导航控制器上,在栈里的其他子控制器的view不会被销毁,只是移除了父视图
d. 点击返回按钮,移除栈顶控制器,被移除的控制器会在新的顶控制器完全显示的时候被销毁

6. 导航控制的主动出栈注意

出栈的控制器必须是栈里的子控制器,不能自己创建一个控制器出栈,会报出栈的控制器不存在的错误

(二). 关于导航条

1. 简介

导航条继承自UIView,一个导航控制器只有一个导航条,子控制器共用一个导航条;创建一个导航控制器,就默认自动创建一个导航条

2. 常用属性和方法

// 设置导航条的样式
@property(nonatomic,assign) UIBarStyle barStyle;
// 设置导航条的代理
@property(nonatomic,assign) id<UINavigationBarDelegate> delegate;
// 设置导航条是否透明,iOS6之前默认为NO,如果设置barStyle属性为UIBarStyleBlackTranslucent,者默认为YES
@property(nonatomic,assign,getter=isTranslucent) BOOL translucent;
// 获取栈顶控制器的导航条的数据模型
@property(nonatomic,readonly,retain) UINavigationItem *topItem;
// 获取返回按钮对应的控制器的导航条的数据模型
@property(nonatomic,readonly,retain) UINavigationItem *backItem;
// 获取所有的数据模型
@property(nonatomic,copy) NSArray *items;
// iOS7之前,tintColor可以修改背景色
@property(nonatomic,retain) UIColor *tintColor;
// iOS7之后,修改背景色只能用barTintColor
@property(nonatomic,retain) UIColor *barTintColor;
// 要先设置导航条的背景图片,在设置阴影图片才有效果
@property(nonatomic,retain) UIImage *shadowImage;

// 将新的UINavigationItem 压入栈
- (void)pushNavigationItem:(UINavigationItem *)item animated:(BOOL)animated;
// 将顶部的UINavigationItem 推出栈
- (UINavigationItem *)popNavigationItemAnimated:(BOOL)animated; 
// 获取所有的数据模型
- (void)setItems:(NSArray *)items animated:(BOOL)animated;
// 设置导航条的背景图片
- (void)setBackgroundImage:(UIImage *)backgroundImage forBarMetrics:(UIBarMetrics)barMetrics;

3. 导航条的代理方法

// 是否允许入栈
- (BOOL)navigationBar:(UINavigationBar *)navigationBar shouldPushItem:(UINavigationItem *)item; 
// 入栈后调用
- (void)navigationBar:(UINavigationBar *)navigationBar didPushItem:(UINavigationItem *)item;    
// 是否允许出栈
- (BOOL)navigationBar:(UINavigationBar *)navigationBar shouldPopItem:(UINavigationItem *)item;  
// 出栈后调用
- (void)navigationBar:(UINavigationBar *)navigationBar didPopItem:(UINavigationItem *)item;

4. 导航条的内容

导航条的内容由navigationItem属性决定,但是navigationItem不是导航控制器的属性,也不是导航条的属性,而是控制器UIViewController的属性,因此导航控制器必须要有一个控制器,才能设置导航条的内容

@interface UIViewController (UINavigationControllerItem)

// 只读,导航条内容
@property(nonatomic,readonly,retain) UINavigationItem *navigationItem; 
// 当显示新的控制器的时候,隐藏底部的工具条,默认为NO
@property(nonatomic) BOOL hidesBottomBarWhenPushed; 
// 只读,导航控制器
@property(nonatomic,readonly,retain) UINavigationController *navigationController; 

@end

5. 导航条的数据模型

设置导航条的内容实质是设置导航条的数据模型,因为UINavigationItem继承于NSObject,不是UIView

@interface UINavigationItem : NSObject <NSCoding>

// 导航条的标题
@property(nonatomic,copy) NSString *title;
// 设置返回按钮,返回按钮在下一个控制器中生效
@property(nonatomic,retain) UIBarButtonItem *backBarButtonItem;
// 自定义一个标题视图
@property(nonatomic,retain) UIView *titleView;
// 说明标题,用于叙述
@property(nonatomic,copy) NSString *prompt;
// 隐藏返回按钮
@property(nonatomic,assign) BOOL hidesBackButton;
// 自定义多个左边的按钮
@property(nonatomic,copy) NSArray *leftBarButtonItems;
// 自定义多个右边的按钮
@property(nonatomic,copy) NSArray *rightBarButtonItems;
// 是否显示返回按钮
@property(nonatomic) BOOL leftItemsSupplementBackButton;
// 设置一个左边按钮
@property(nonatomic,retain) UIBarButtonItem *leftBarButtonItem;
// 设置一个右边按钮
@property(nonatomic,retain) UIBarButtonItem *rightBarButtonItem;

// 初始化UINavigationItem对象的标题
- (instancetype)initWithTitle:(NSString *)title;
// 隐藏返回按钮
- (void)setHidesBackButton:(BOOL)hidesBackButton animated:(BOOL)animated;
// 自定义多个左边的按钮
- (void)setLeftBarButtonItems:(NSArray *)items animated:(BOOL)animated ; 
// 自定义多个右边的按钮
- (void)setRightBarButtonItems:(NSArray *)items animated:(BOOL)animated ;
// 设置一个左边按钮
- (void)setLeftBarButtonItem:(UIBarButtonItem *)item animated:(BOOL)animated;
// 设置一个右边按钮
- (void)setRightBarButtonItem:(UIBarButtonItem *)item animated:(BOOL)animated;

@end

6. 导航条上的返回按钮的标题由上一个控制器决定

(1). 如果上一个控制器没有设置标题,默认back
(2). 如果上一个控制器设置标题,并且没有超过12个字符,默认返回按钮的标题和上一个控制器的标题一致
(3). 如果上一个控制器设置标题,但是超过12个字符,返回按钮的标题就会变成back
(4). 还可以主动直接设置的返回按钮的标题,得通过上一个控制器的backBarButtonItem属性设置

(三). 关于工具条

1. 简介

工具条继承自UIView,一个导航控制器只有一个工具条,子控制器共用一个工具条;创建一个导航控制器,就默认自动创建一个工具条,但默认是隐藏的,可以设置toolbarHidden属性为NO,即可显示

2. 常用属性

// 设置工具条类型
@property(nonatomic) UIBarStyle barStyle;
// 设置工具条上可见的的按钮UIBarButtonItem
@property(nonatomic,copy) NSArray *items;
// 设置导航条是否透明,iOS6之前默认为NO,如果设置barStyle属性为UIBarStyleBlackTranslucent,者默认为YES
@property(nonatomic,assign,getter=isTranslucent) BOOL translucent;
// iOS7之前,tintColor可以修改背景色
@property(nonatomic,retain) UIColor *tintColor;
// iOS7之后,修改背景色只能用barTintColor
@property(nonatomic,retain) UIColor *barTintColor;
// 设置代理
@property(nonatomic,assign) id<UIToolbarDelegate> delegate;

3. 工具条的内容

(1). 工具条的内容由toolbarItems属性决定,但是toolbarItems不是导航控制器的属性,也不是工具条的属性,而是控制器UIViewController的属性,因此导航控制器必须要有一个控制器,才能设置工具条的内容
(2). toolbarItems是一个数组,因此要先创建好所需要的按钮,再在一个数组中添加新建的按钮,才能把这个数组赋值给toolbarItems

@interface UIViewController (UINavigationControllerContextualToolbarItems)

// 设置工具条的内容
@property (nonatomic, retain) NSArray *toolbarItems NS_AVAILABLE_IOS(3_0);
// 设置工具条的内容
- (void)setToolbarItems:(NSArray *)toolbarItems animated:(BOOL)animated NS_AVAILABLE_IOS(3_0);

@end

4. 工具条上的按钮的数据模型

设置工具条的内容实质是设置工具条的数据模型,因为toolbarItems继承于UIBarItem,而UIBarItem又继承自NSObject

@interface UIBarButtonItem : UIBarItem <NSCoding>
// 设置按钮类型
@property(nonatomic) UIBarButtonItemStyle style;
// 设置高,默认为0.0
@property(nonatomic) CGFloat width;         
// 这个属性暂时不理解怎么使用!!!
@property(nonatomic,copy) NSSet *possibleTitles;   
// 自定义view
@property(nonatomic,retain) UIView *customView;      
// 响应方法
@property(nonatomic) SEL action;         
// 响应方法的对象
@property(nonatomic,assign) id target;   
// 设置按钮的颜色
@property(nonatomic,retain) UIColor *tintColor;

七、导航控制的创建

这里只给出一部分代码

#import "AppDelegate.h"
#import "OneViewController.h"

@interface AppDelegate ()

@end

@implementation AppDelegate


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {


  // 1.创建窗口
  self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];


  // 2.1创建导航条的根控制器
  UIViewController *vc = [[OneViewController alloc] init];

  // 设置根控制(方式一)
  // 2.2创建导航条控制
  //UINavigationController *nav = [[UINavigationController alloc] init];
  // 2.3设置第一个控制器,第一个子控制器默认是导航控制器的根控制器
  //[nav pushViewController:vc animated:YES];

  // 设置根控制(方式二)
  // 2.2创建导航控制器,并使用控制器初始化导航控制器的根控制器
  UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:vc];


  // 2.创建窗口的根控制器
  self.window.rootViewController = nav;


  // 3.显示窗口
  [self.window makeKeyAndVisible];


#pragma mark - 设置导航控制器的工具条

  // 显示工具条,默认是隐藏的
  nav.toolbarHidden = NO;

  // 设置一个有加号图案按钮
  UIBarButtonItem *one = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:nil action:nil];

  // 设置加号按钮的颜色
  one.tintColor = [UIColor redColor];

  // 设置一个有书籍图案按钮
  UIBarButtonItem *two = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemBookmarks target:nil action:nil];

  // 设置一个有处理图案按钮
  UIBarButtonItem *three = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction target:nil action:nil];

  // 设置一个有编辑图案按钮
  UIBarButtonItem *four = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemEdit target:nil action:nil];

  // 设置一个灵活间隔,能自适应配置横向的各个按钮的位置
  UIBarButtonItem *flexItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];

  // 调用控制器的方法向工具条添加按钮
  [vc setToolbarItems:[NSArray arrayWithObjects:flexItem, one, flexItem, two, flexItem, three, flexItem, four, flexItem,nil]];


  return YES;
}

@end

八. 补充:窗口、导航控制器、控制器之间的关系

这里写图片描述

  1. 新建的窗口UIWindow:没有子控件

  2. 新建的控制器UIViewController:没有子控件

  3. 新建的导航控制器UINavigationController默认有两个子控件:UINavigationTransitionView、UINavigationBar、UIToolbar,其中UIToolbar默认是隐藏的

  4. 新建的导航控制器的子控件UINavigationTransitionView :没有子控件

  5. 添加了根控制的导航控制器,其子控件UINavigationTransitionView自动添加一个UIViewControllerWrapperView

  6. UIViewControllerWrapperView有一个子控件:根控制器的View

  7. 添加了根控制器的窗口UIWindow有了一个子控件:UILayoutContainerView

LabVIEW新手必看:5个工业自动化实战项目从零搭建(附完整代码) 本文为LabVIEW新手提供了5个从零开始的工业自动化实战项目指南,涵盖数据采集、状态机控制、PID闭环、振动监测及多站协同监控。通过详细的架构解析和关键代码片段,帮助读者快速掌握LabVIEW图形化编程的核心逻辑与工程化思维,并附完整代码实现。 阅读详情

相关推荐

AFSim编译一:windows

AFSim在windows上的编译

Meepo的博客 4734

NavigationController

实际开发中都是多控制器的;用一个控制器(父)管理多个控制器(子) ios提供2个特殊的(父)控制器 UINavigationControler 简介 导航控制器,可以轻松完成多个控制器之间的切换,其结构包含导航条(y=20)、栈顶控制器的view、导航控制器的view。导航控制器需要设置一个根控制器,一般是UIViewControler。 基本使用 最开始的时候,栈顶控制器的view就是导航控制器的根控制器的view。 1.先去掉Info.plist...

imherer的博客 1889

图片数据爬取工具Image-Downloader的安装和使用

文章目录1、python安装2、下载chromedriver并配置3、下载phantomjs并配置.4、安装相关python库5、使用 安装包地址:https://github.com/sczhengyabin/Image-Downloader 下载: 方式一:打开cmd,输入: git clone https://github.com/sczhengyabin/Image-Downloader.git 方式二:打开网址 1、python安装 该数据爬取工具要求python>=3.5,由于

wxplol的博客 6672

NavigationViewController

// // NavigationDemoViewController.m // AppUI组件学习 // // Created by 麦子 on 15/6/20. // Copyright (c) 2015年 麦子. All rights reserved. // #import "NavigationDemoRootViewController.h" #import "Navigati

麦子专栏 1129

ARKit面部动画实战:如何用blend shape让数字人表情更自然(附中文对照表)

本文深入探讨了如何利用ARKit的blend shape技术驱动数字人面部动画,以实现更自然生动的表情。文章提供了详细的blend shape中文对照表,并分享了实战技巧,包括构建复合表情动画序列、处理不对称性与微表情,以及性能优化策略,旨在帮助开发者高效提升数字人的表情表现力。

weixin_29292535的博客 324

基于python的超市历年数据可视化分析

包含:Order_Date Sales Quantity Profit year month。所有这些物品都在美国4个地区的49个州销售,来着793位客户的5009个订单。9994行,21列数据。

m0_74872863的博客 534

UINavigationViewController(导航视图控制器)——自定义导航按钮

设置导航按钮的样式,以及设置导航标题区的样式 let viewcontroller = FirstSubViewViewController() let navigationController = (UINavigationController(rootViewController: viewcontroller)) self.window?....

小白的秘密空间 616

SAP ABAP BAPI_PRODORD_CHANGE:动态刷新PP主数据的实战解析

本文深入解析了在SAP ABAP开发中,如何利用BAPI_PRODORD_CHANGE函数实现生产订单PP主数据的动态刷新。针对CO02事务码无法满足的后台自动化场景,详细讲解了通过设置explosion_date和explode_new等关键参数来强制重新读取BOM和工艺路线的实战方法,并提供了核心代码示例与避坑指南,确保生产订单信息与最新主数据同步。

weixin_29231027的博客 149

推荐:DLHamburguerMenu - 翻页式汉堡菜单控件

推荐:DLHamburguerMenu - 翻页式汉堡菜单控件 项目介绍 DLHamburguerMenu 是一个全 Swift 编写的翻页式汉堡菜单控件,它可以在当前视图内容之上展示一个侧边栏菜单。适用于 iOS 7 及以上版本的设备。这个库简单易用,并且支持通过故事板进行集成,让您的应用可以拥有如同快餐店汉堡一般的滑动菜单效果。 项目技术分析 DLHamburguerMenu 的结构设计巧妙...

gitblog_00001的博客 958

OpenClaw 核心命令深度解析:/think high、/reasoning on、/verbose on 功能与实战指南

本文深入解析OpenClaw框架的三大核心命令:/think high实现极限深度推理,突破常规思考瓶颈;/reasoning on提供透明化推理过程,增强决策可信度;/verbose on控制详细输出级别。文章从技术架构、实现原理、配置方法和典型场景四个维度,详细阐述了各命令的功能特性与实战应用,包括法律分析、代码调试和商业决策等复杂场景的最佳实践。同时提供了多级配置方案和资源消耗参考,帮助用户根据任务复杂度灵活调配AI资源,实现效率与深度的最优平衡。

qq_43344878的博客 942

【uni-app】PDA扫码枪获取扫码数据APP(通俗易懂),聚焦频繁弹软键盘输入法等各种坑完美解决方法,附完整代码

uniapp PDA扫码枪获取扫码数据APP(通俗易懂),频繁弹软键盘等各种坑完美解决方法

coderYYY的博客 7418

UIViewController/uinavigationcontroller

UIViewController的主要功能是用于控制画面的切换,常见的包括UITabBarController, UINavigationController,UITableViewController。他包含了一个view属性用来管理显示的外观,viewDidLoad方法就是在view被导入后调用,如果想要添加自定义的东西,只需要添加到view即可。              1:UINa

bwq的专栏 932

人像美肤 人体美型 CVPR 2022 ABPN

人像美肤 CVPR 2022 ABPN

jacke121的专栏 841

UINavgationViewController

一. 设置全部导航条的背景 // 取出全部导航条 UINavigationBar *bar = [UINavigationBar appearance]; // 设置全部导航条的背景图片 [bar setBackgroundImage:[UIImage imageName: @"navigationbar_background.png"] forBarMet...

weixin_30418341的博客 112

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

设置uinavgationviewcontroller的按钮

<br /> <br /> <br /> m_navViewController = [[UIViewController alloc] init]; m_navigationController = [[UINavigationController alloc] initWithRootViewController: m_navViewController]; UIBarButtonItem *navigationButton = [[[UIBarButtonItem alloc

520

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

关于 ios 7.0启用的UINavgationViewController的interactivePopGestureRecognizer手势

转载自:  http://www.cnblogs.com/lingzhiguiji/p/3646028.html 相信所有试着使用自定义返回的leftItem,但是也会发现一个问题就是ios7.0的那个pan返回上一页的手势失效了。 因为自己使用app的时候是7.0的系统,所以呢,觉得相当的不爽,于是纠结了,然后到stackoverflow.com里面找到相关的资料,但是各种try

沸腾的泪水的专栏 1388

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

UINavigationController获取上一级Controller

PageBaoliao *parent = (PageBaoliao*)[self.navigationController.viewControllers objectAtIndex: ([self.navigationController.viewControllers count] -2)]; 转载于:https://www.cnblogs.com/zzzili/p/66...

weixin_30302609的博客 237

UINavigationViewController(导航视图控制器)——导航栏与工具栏

文中文件的设置,基础的导航视图控制器 在第一个视图中,重写一个viewWillAppear的方法。 显示底部的工具栏 //当视图即将可见的时候调用这个方法 override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) //覆盖父类同名方法。 ...

小白的秘密空间 573

UI 常用方法总结之--- UINavigationController

UINavigationController : UIViewController   1.创建UINavigationController对象 UINavigationController *navCV = [[UINavigationController alloc]initWithRootViewController:mainVC];  通常和 self.window.rootVi...

qq11231325的专栏 760

一分钟 由浅入深 学会Navigation

大白话来讲:就是控制多fragment直接的切换,其中涉及数据的传递与更新,动画和内存堆栈,也需要了解Fragment的生命周期。

zhoujun798的博客 2354

ios NavigationViewController跳转以及返回传值

(一)使用NavigationViewController进行页面跳转时,应该使用pushViewController方法来跳转至下一页面,这样的话,下一页面同样在NavigationViewController容器中。 1、跳转到下一页面: PowerViewController *power = [[PowerViewController alloc] init];

lijuan3203的专栏 1328

iOS - navigationController简单使用

首先,层级关系: leftBarButtonItem、rightBarButtonItem、title都是加在UINavigationItem上的,UINavigationItem再加在NavigationBar上,NavigationBar对应唯一的NavigationController.

qq_43718460的博客 968

Jetpack之Navgation和Fragment

一、简述 Jetpack中的Navgation和SystemUI中的NavgationBar导航栏并不是一个东西。在Jetpack中的Navgation是为了适配Fragment而诞生的,在当今Android开发中,Fragment的优点在于轻量、可控制性强,但其相较与Activity而言,仍然有着其弊端,如:Activity的回退栈以及页面的参数传递。此时Navgation正是为了适配Fragment开发而推出的。此篇仅仅简单介绍Navgation的使用,原理下篇叙述。 二、Navgation介绍 2.1

qq_41672484的博客 2622

IOS 使用UINavigationController 建立ViewController管理

在AppDelegate didFinishLaunchingWithOptions方法做处理 在AppDelegate.h里添加 @property (strong,nonatomic) MyViewController *viewController; @property (strong,nonatomic) UINavigationController *naviController...

龙之吻T 733

UI学习——导航控制器

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

m0_73974920的博客 1607
上一篇: iOS的常见文件及程序的启动原理
下一篇: UITabBarController详解
活在生活里
博客等级 码龄11年 94粉丝 82原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值