导航控制器UINavigationController

(一)导航控制器:严格来说,导航控制器并不是视图控制器,只是一个专门来管理ViewController的容器类。采用堆栈的设计模式,先进后出,后进先出。push就是压栈,pop就是弹栈。

(二)导航栏:UINavigationBar:就是导航控制器上面那一栏。

     // 设置导航栏的背景颜色
        navigationController?.navigationBar.barTintColor = UIColor.orangeColor()
        // 设置导航栏的背景图片 参数3是设置横竖屏
        navigationController?.navigationBar.setBackgroundImage(UIImage(named: "2"), forBarPosition: .Any, barMetrics: .Default)

(三)模型:UINavigationItem:这就是一个模型,设定了导航栏的各个属性状态。

(四)导航按钮:UIBarButtonItem:就是添加在导航栏上面的按钮。这里除了可以使用系统自带的按钮外,还完全可以自定义。

     // 设置左按钮
        navigationItem.leftBarButtonItem = UIBarButtonItem(barButtonSystemItem: .Play, target: nil, action: nil)

  修改颜色:

    // 颜色渲染
        navigationController?.navigationBar.tintColor = UIColor.orangeColor()

  如果自己写了左侧按钮,那么系统自带的pop就会消失,需要自定义。

(五)工具栏:导航控制器的工具栏在最下方,默认是隐藏的。

    // 工具栏
        navigationController?.toolbarHidden = false
        navigationController?.toolbar.barTintColor = UIColor.yellowColor()

(六)滑动时候自动隐藏:很多APP在滑动的时候,导航栏和工具栏都是隐藏的。例如读书软件和视频软件。

       // 当设备横屏时候,自动隐藏
        navigationController?.hidesBarsWhenVerticallyCompact = true
        // 当用胡单机屏幕时候,自动隐藏
        navigationController?.hidesBarsOnTap = true
        // 当键盘弹起时候,自动隐藏
        navigationController?.hidesBarsWhenKeyboardAppears = true
        // 当用户滑动时候,自动隐藏
        navigationController?.hidesBarsOnSwipe = true    
时间: 2024-08-30 06:53:04

导航控制器UINavigationController的相关文章

UI:导航控制器UINavigationController的使用

一.多控制器 一个iOS的app很少只由一个控制器组成,除非这个app极其简单.当app中有多个控制器的时候,我们就需要对这些控制器进行管理 有多个view时,可以用一个大的view去管理1个或者多个小view,控制器也是如此,用1个控制器去管理其他多个控制器 比如,用一个控制器A去管理3个控制器B.C.D.控制器A被称为控制器B.C.D的"父控制器":控制器B.C.D的被称为控制器A的"子控制器" 为了便于管理控制器,iOS提供了2个比较特殊的控制器 UINavi

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

iOS开发UINavigation系列四--导航控制器UINavigationController 一.引言 在前面的博客中,我么你介绍了UINavigationBar,UINavigationItem和UIToolBar,UINavigationController是将这些控件和UIViewController紧密的结合了起来,使用导航,我们的应用程序层次会更加分明,对controller的管理也更加方便.前几篇博客地址如下: UINavigationBar:http://my.oschina

ios导航控制器UINavigationController,控制器a跳转(push)到b后,b跳转(push)到c,但c后退(pop)进入a

参考:StackOverflow ios导航控制器UINavigationController,控制器a跳转(push)到b后,b跳转(push)到c,但c后退(pop)进入a.在b跳转(push)到c中代码书写如下: UINavigationController *navController = [[self.navigationController retain] autorelease]; [navController popViewControllerAnimated:NO]; View

UIKit框架(11)导航控制器UINavigationController

介绍多控制器管理中非常重要的一个控制器UINavigationController 它负责管理多个控制器,能够轻松完成控制器间的切换 如:iOS系统上的设置 父类是UIViewController,但其功能并非是管理view,而是管理多个控制器 控制器栈式管理: 当切换时,将一个控制器入栈,当返回时,栈顶控制器出栈 当前显示的永远是栈顶控制器的view,栈结构如下: @property(nonatomic, copy) NSArray *viewControllers  //管理的所有控制器  

【iOS开发-26】利用协议代理实现导航控制器UINavigationController视图之间的正向传值和反向传值

实验说明 (1)正向传值:比如A类里地值要传给B类用,就是我们先在A类中声明一个B类对象(当然B类头文件要import过来),然后把A类中得某个值传递给B类中得某个值(所以需要在B类中先准备一个变量来接受,就是用@property和@synthesize整个变量即可). (2)反向传值:比如需要把B类中的值传递给A类用.我们先在B类中写一个协议,协议里面有一个可以带参数的方法,这个参数就是我们要传递的值(这个协议也可以单独写,不一定写在B类中),然后B类遵循这个协议后,利用这个协议创建一个委托变

IOS UINavigationController 导航控制器

/** 导航控制器掌握: 1.创建导航控制器 UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:self.viewController]; 2.zhan (zhan 中所有的子控制器) self.navigationController.viewControllers; 3.将控制器压入zhan 中 [self.navigationController pushView

02---按钮的设置 控制器拥有导航栏包装一层导航控制器 添加子控制器 UIBarButtonItem导航按钮 设置导航栏UINavigationBar主题 设置状态栏样式

一.按钮的设置 1.设置背景图片 [btn setBackgroundImage:image forState:UIControlStateNormal]; 2.内部UIImageView 1> 设置内部UIImageView的图片 [btn setImage:image forState:UIControlStateNormal]; // 不能写成btn.imageView.image = image; 2> 调整内部图片的内容模式 self.imageView.contentMode =

iOS开发UI篇—导航控制器属性和基本使用

IOS开发UI篇—导航控制器属性和基本使用 一.导航控制器的一些属性和基本使用 1.把子控制器添加到导航控制器中的四种方法 (1) 1.创建一个导航控制器 UINavigationController *nav=[[UINavigationControlleralloc]init]; 2.设置导航控制器为window的根视图 self.window.rootViewController=nav; 3.添加 YYOneViewController  *one = [[YYOneViewContro

ios 导航控制器

1.在AppDelegate.m中 引用 #import "RootViewController.h" - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. #pragma mark - 配置win