首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

iOS开发UINavigation系列四——导航控制器UINavigationController

iOS开发UINavigation系列四——导航控制器UINavigationController 一、引言         在前面的博客中,么你介绍了UINavigationBar,UINavigationItem...        导航控制器是一个堆栈结构,只是其中管理对象是controller,通过push与pop进行controller切换,我们有两种方式可以创建导航控制器: //通过一个自定义导航和工具创建导航控制器...; //屏幕滑动时候隐藏导航,常用于tableView,上滑隐藏导航,下滑显示,带动画效果 @property (nonatomic, readwrite, assign) BOOL hidesBarsOnSwipe...; //横屏时候隐藏导航 @property (nonatomic, readwrite, assign) BOOL hidesBarsWhenVerticallyCompact; //敲击屏幕可以隐藏与显示导航...; //push时候隐藏底部,如push后隐藏tabbar @property(nonatomic) BOOL hidesBottomBarWhenPushed; //管理它导航控制器 @property

1.8K20

iOS导航使用总结

目录: 一、设置导航样式 二、解决自定义导航返回按钮后侧滑不可用问题 三、隐藏导航底部分割线 四、导航引起布局问题 相关文章:iOS状态使用总结 一、设置导航样式 设置导航样式可分为全局设置与局部设置...导航视图层级图 从图中可以看出,导航底部分割线是一个UIImageView对象,而且高度只有0.5,所以我们可以据此获取到导航底部分割线对象,在一个视图控制器中实现此需求,代码如下: #import...,用于优化滑动类视图(继承于UIScrollView视图)在视图控制里显示: iOS系统导航UINavigationBar与标签UITabBar默认都是半透明模糊效果,在这种情况下系统会对视图控制器...我们可以通过一段代码来测试一下效果,在默认导航(半透明)视图控制器里添加如下代码: //UITextView是滑动视图,内容自动向下偏移,不会被导航覆盖 UITextView *leftTextView...,默认值是UIRectEdgeAll,即:当前视图控制器里各种UI控件会忽略导航和标签存在,布局时若设置其原点设置(0,0),视图会延伸显示到导航下面被覆盖。

3.2K20
您找到你想要的搜索结果了吗?
是的
没有找到

Cocoa编程中视图控制器视图类详解

导航控制器自动构建并处理Back按钮; 3. 导航控制器提供简单菜单可帮助用户进行自定义控件。4....使用pushViewController: animated:可推入一个新控制器,从而增加新项到导航栈。(记住:导航控制器不添加一个视图进去,这个导航是没有意义!)...作为弹出回上一级视图控制器Back按钮是自动产生并处理,无需用户干预。 3. 可使用popViewControllerAnimated:BOOL弹出当前视图控制器并向左显示一个视图。 4....可使用popToRootViewControllerAnimated:BOOL直接弹出到根视图控制器。 6. 设置导航按钮并不是去设置导航本身。...)和标题(title)、用于显示标题视图(titleView),以及用于从当前视图向后导航Back按钮(backBarButtonItem)和隐藏后退按钮(hidesBackButton)。

5K50

【IOS开发基础系列】Navigation页面导航专题

,即不是使用push方式加载子VC,而是通过AddChildViewController方式添加场景,则父级导航条会覆盖在子级导航条上面,所以需要在载入时把父级导航条做隐藏处理: 1.2 navigationItem...--(二十四)-iOS7View被导航遮挡问题解决 http://www.cnblogs.com/PleaseInputEnglish/p/3498032.html 2.5.2 导航条设置半透明...        将NavigationBar设置透明(仅将指定视图控制器进行透明处理),步骤如下:     1.在视图控制器头文件中实现UINavigationControllerDelegate,例如...{        //进入其他视图控制器        self.navigationController.navigationBar.alpha = 1;        //背景颜色设置系统默认颜色...[self.navigationItem setHidesBackButton: YES]; 2.5.5 设置导航标题字体颜色和大小     方法一:(自定义视图方法,一般人也会采用这样方式)

36020

UINavigationController 导航控制器概念属性方法

*barHideOnSwipeGestureRecognizer; 10、屏幕滑动时候是否隐藏导航,常用于tableView,上滑隐藏导航,下滑显示,带动画效果 @property (nonatomic...时候隐藏底部,如push后隐藏tabbar @property(nonatomic) BOOL hidesBottomBarWhenPushed; (3)获取管理它导航控制器 @property(...(1)通过一个自定义导航和工具创建导航控制器 - (instancetype)initWithNavigationBarClass:(nullable Class)navigationBarClass...toolbarClass:(nullable Class)toolbarClass; (2)使用系统默认导航和工具,创建一个导航控制器同时设置一个根视图控制器 - (instancetype)initWithRootViewController...*> *)viewControllers animated:(BOOL)animated; 3、管理视图控制器操作 (1)压入新视图控制器 - (void)pushViewController:(

2.1K60

iOS状态使用总结

目录: 一、状态导航 二、设置状态显隐与字体样式 三、设置状态背景色 四、启动页隐藏状态 五、状态导航相关常用宏定义 相关文章:iOS导航使用总结 一、状态导航 状态...((44) iPhoneX设备出现以后,状态高度变为44,导航部分总高度(88) = 状态(44) + 导航栏内容高度(44) 二、设置状态显隐与字体样式 iOS状态可以设置显示和隐藏,也可以设置文字颜色...此时全局设置操作都是无效,需要分页设置才能修改其样式,即:在每个视图控制器或者控制器基类中使用如下代码: - (UIStatusBarStyle)preferredStatusBarStyle {...//return NO; //设置状态显示 } 但是,这里存在一个问题:如果当前视图控制器是UINavigationController视图控制器,preferredStatusBarStyle...这是因为导航控制器preferredStatusBarStyle才具有修改状态样式能力,解决这个问题方法有两种: 方法1:添加子类导航控制器 我们需要使用自定义子类导航控制器,在其中添加如下代码

1.9K30

iOS 9人机界面指南(四):UI元素(上) - 腾讯ISUX

当键盘被唤起、用户使用了手势、或者当前视图变为竖屏情况下,导航可以隐藏。...在用户需要专注于内容时候,可以考虑隐藏导航。当你这么做时候,请确保用户通过一个简单手势(比如一下轻击)即可重新唤起导航。 ?...请注意,当搜索视图控制器包含在导航控制器里面的时候——比如在邮件应用(Mail)中那样,当用户激活搜索时,搜索会自动上浮,平铺到原来导航位置上。...如果需要的话,设计一种自定义方式让用户可以以非线性方式来获取内容。页面视图控制器让用户从一页移动到一页或者后一页,而并不支持用户在并不相邻页面间快速切换。...默认情况下,竖屏方向时只会展示右侧窗格,因此你需要向用户提供一个按钮(通常位于导航上)来让用户唤起和隐藏主窗格。对分视图控制器也支持轻扫手势来执行呼出和隐藏动作。

10.1K51

【iOS开发-22】navigationBar导航,navigationItem建立:获取导航基本文本和button以及各种跳跃

大家好,又见面了,是全栈君 (1)navigationBar导航可以被看作是self.navigationController一个属性导航控制器,它可以由点直接表示self.navigationController.navigationBar...须要创建两个视图控制器(ViewController根视图控制器,SecondViewController子视图控制器),然后放在导航控制器栈中。...隐藏导航条,由此点击进入其它视图导航条也会被隐藏。...,所谓跳转,事实上就是往导航控制器栈中PUSH或者POP一个视图控制器,这样在最上面的视图控制器就变了,这样视图也跟着变了,由于仅仅显示在栈顶得那个视图控制器视图 //所以(1)控制所谓跳转...事实上是导航控制器在控制,在里面的元素都能够通过navigationController属性获取到它们所在导航控制器 //所以(2)获取到导航控制器之后,使用Push那个方法,往栈里面放一个视图控制器

2.2K10

iOS:分割控制器UISplitViewcontroller

分割控制器UISplitViewController 功能:它也是ipad一个新特性,在屏幕上可以同时显示两个控制器,左边一个,右边一个;左边为主控制器,右边详细控制器,主控制器可以根据需要显示或隐藏...它对于iPhone虽然可以使用,但是不具备同时显示特点,在iPhone样式,就是导航控制器切换模式。...: 在故事板布局样式截图为: 下面我们就通过纯代码方式创建如下: 1、创建两个控制器类,一个为主控制器类MasterViewController,一个详细控制器类DetailViewController...Master导航和按钮,并设置表格视图数据源和代理 - (void)viewDidLoad { [super viewDidLoad]; //创建UITableView...Master导航和按钮 self.navigationItem.title = @"Master"; self.navigationItem.leftBarButtonItem =

1.8K30

iOS导航切换界面时隐藏和显示

: 实现: 要实现这个简单有无导航过渡其实很简单,直接在 viewWillAppear 和 viewWillDisappear 方法中对导航进行显示和隐藏就可以了,为了到达比较平滑效果,建议对是否动画参数选择...,在通过Tabbar切换模块时就会出现一个很快隐藏导航动画,这个很烦,尝试了很多方法,试图在 UINavigationControllerDelegate 和 UITabBarControllerDelegate...这个方法是直接隐藏了整个导航,所以如果要保存导航一些返回按钮以及其他自定义按钮,就需要自己在界面上去模拟添加,如果不想这么麻烦,也可以不隐藏导航,而是将导航背景视图设为透明: [...结 上面的方法可以在只有导航控制器时比较好操作,虽然不能做到像QQ那么好,但也能用,但如果有Tabbar存在,就会有问题。那如何做到QQ那样效果呢?...这里有一篇文章实现了:传送门:导航平滑显示和隐藏 - 个人页自我修养(1) ,不过作者使用swift实现,用到了extension,其实也就是OC下category,之后再研究一下OC下实现好了

3.8K30

iOS开发UI篇--一个侧滑菜单SlidingMenu

侧滑菜单因Path 2.0和Facebook开发者熟知,国内目前也有很多流行app用到了侧滑菜单,比如QQ、网易邮箱、知乎等等。...IOS官方并没有提供类似于侧滑之类组件,所以我们需要自己写一个侧滑控件,为了不要重复造轮子,在github上找到了一个使用简单方便,新手容易入手侧滑菜单控件,Demo下载地址:这是一个iOS...下面我们就是使用上面的控件,来做一个侧滑小Demo,来教大家快速入门侧滑控件。...在viewDidLoad方法中设置SWRevealViewControllerpanGestureRecognizer方法,即可实现在主界面上滑动就可以出现左侧或者右侧菜单。...你支持是继续动力。 下篇文章预告:iOS动画总结 文章来源于网络,如有侵权,请联系小编删除。

1.2K20

VCTransitionsLibrary –自定义iOS交互式转场动画

交互控制器 – 这个类是用来管理交互-那些通常由某个手势空控制交互,允许用户通过滑动,轻扫或执行其他操作来实现两个视图控制器导航.必须指出是,交互控制器允许导航取消,例如,一个用户可以在正在导航至某一页面时...使用动画控制器 AnimationControllers 文件夹中提供了许多可以整合进你工程中动画控制器: 自定义模态控制器显示/隐藏动画 UIViewControllerTransitioningDelegate...协议被用来在模态控制器显示/隐藏时提供一个动画控制器.当一个视图控制器被模态显示或隐藏时,它transitioningDelegate属性用来提供UIViewControllerTransitioningDelegate...交互控制器负责给视图添加手势,并负责在用户使用某个手势时进行相应地导航操作...._interactionController : nil; } 用于标签控制器切换时交互 UITabBarControllerDelegate 协议也交互式转场提供了支持.但是由于代理方法在首次初始化时不被执行

1.5K60

UI篇-UINavigationController之易忘补充

在入口类中全局设置就可以达到统一导航颜色效果。  ...上面设置YES,下面的NO 关于导航返回:     首先ios7 之后只要使用系统自带导航效果就有手动滑动返回效果。但是当自定义返回按钮时,这种手动滑动返回效果就没有了。...navigationItem navigationItem是UIViewController一个属性,包含了当前页面导航上需要显示全部信息,这个属性是UINavigationController...每个视图控制器都有一个navigationItem属性,navigationItem中设置做按钮、右按钮、标题等,会随着控制器显示,也显示到navigationBar上 我们来看一下这些名词是什么意思...形成整个nv导航

2.1K20

iOS系统中导航转场解决方案与最佳实践

除了上面说到两点,pop 过程中还需要注意一点,那就是从 B 返回到 A 过程中,A 视图控制器 viewDidLoad 方法并不会被调用。...ViewController 视图第一个子控件是 UIScrollView 类型视图。 ViewController 是 navigation 或者 tab 类型控制器视图控制器。...,在视图控制器 viewDidLoad 或者 viewWillAppear: 方法里去设置导航样式。...如果真的要隐藏导航 如果我们需要隐藏导航,请保证所有的 ViewController 能坚持如下原则: 每个 ViewController 只需要关心当前页面下导航是否被隐藏。...转场动画与导航隐藏动画一致性 如果在转场过程中还会显示或者隐藏导航的话,请保证两个方法动画参数一致。

2.3K30

Swift开发:自定义标签UITabBarController (Swift项目开始第一步)

屏幕快照 2017-07-15 下午1.52.29.png 2.创建标签配置Plist文件,并且在Plist文件中设置视图控制器类名、Title、标签图片等信息 ?...第三步:创建视图控制器 自定义导航控制器视图控制器父类,并且创建三个继承于BaseViewController视图控制器(因为没有过多复杂操作,这里省略代码),之后创建标签控制器做准备。...NSCoder) { fatalError("init(coder:) has not been implemented") } } 第五步:在Appdelegate中设置Window视图控制器自定义标签控制器...makeKeyAndVisible() //设置Window视图控制器自定义标签 self.window?....在项目前期我们以自定义方式来创建标签,这也是为了后期应对更加复杂需求做伏笔,比如增加新控制器我们只需要修改plist配置文件属性创建相应视图控制器就可以,这样就避免了修改大量代码。

3.9K70

Human Interface Guidelines —— 导航(Navigation Bars)

内容 当显示一个新屏幕时,一个后退按钮(通常标有一个屏幕标题)出现在该bar左侧。...split view(分割视图) ·Navigation Bars是半透明,可以具有背景色,并且可以配置当键盘出现在屏幕上 / 使用手势 / 视图大小调整时隐藏。...照片在查看全屏照片时会隐藏navigation bar和其他界面元素。 如果你实现这类行为,让用户用简单手势恢复导航,如点击。...替代 在不需要导航时使用toolbar,或者需要多个控件来管理内容。 ---- 导航标题(Navigation Bar Titles) 考虑在navigation bar中显示当前视图标题。...·考虑在导航中使用segmented control来压平应用程序信息层次结构。

2.4K110

ViewController及View生命周期1. 起因2. Controller生命周期3. View生命周期4. 内存警告

这个阶段会加载一些高开销操作,例如:键盘弹出、特殊过程动画(比方说修改状态导航条颜色等等)这些。...iOS7新增加了导航控制器侧滑手势,当触发侧滑返回时,会调用系统viewWillDisappear:方法,取消侧滑返回时又会调用viewWillAppear:方法。...5_0); 在四个方法中: isMovingFromParentViewController 会在viewWillDisappear & viewDidDisappear 方法内部调用这个方法判断视图控制器视图隐藏是否因为视图控制器从它容器视图控制器移除...isBeingDismissed 会在viewWillDisappear & viewDidDisappear 方法内部调用这个方法判断视图控制器视图隐藏是否因为视图控制器被清退 (dismissed...,与上面被其它视图控制器显示对应,如信息录入完成,返回之前视图控制器)。

1.3K30

UINavigationController

:(BOOL)animated; //回到根控制器(栈底控制器) - (NSArray *)popToRootViewControllerAnimated:(BOOL)animated; 如何修改导航内容...导航内容由栈顶控制器navigationItem属性决定 UINavigationItem有以下属性影响着导航内容 //左上角返回按钮 @property(nonatomic,retain...retain) UIBarButtonItem *rightBarButtonItem; 清空导航条背景图片 // 清空导航条背景图片,系统判断当前是否Nil,如果nil,系统还是会自动生成一张背景图片...iOS7之后导航条上德图片默认会渲染成蓝色 代码改变图片原始颜色 获得导航上图片 self.navicationItem.rightBarButtonItem.image; image];...(来源控制器) 新建并且设置Segue对象destinationViewController(目标控制器) 页面跳转操作 调用sourceViewController下面方法,做一些跳转准备工作并且传入创建好

1.4K60
领券