[TwistedFate]导航视图控制器

原创 2015年11月19日 19:37:01

导航视图控制器UINavigationController

导航控制器,是iOS中最常⽤的多视图控制器之⼀,它⽤来管理多个视图控制器。
导航控制器可以认为是管理控制器的控制器,主要管理有层级关系的控制器
UINavigationController通过栈的⽅式管理控制器的切换,控制⼊栈和出栈来展⽰各个视图控制器
UINavigationController的ContentView⾥始终显⽰栈顶控制器的view。

初始化并设为根视图控制器

RootViewController *rootVC = [[RootViewController alloc] init];
// 初始化时 需要一个根视图控制器 去管理(去显示)
UINavigationController *naVC = [[UINavigationController alloc] initWithRootViewController:rootVC];
// 只要是UIViewController子类都可以设置为window的根视图控制器
self.window.rootViewController = naVC;
[rootVC release];
[naVC release];

取出管理的数组

NSArray *array = self.navigationController.viewControllers;

界面跳转

跳到下一级界面

SecondViewController *secondVC = [[SecondViewController alloc] init];
    // 控制器中有一个导航控制器的属性
    // 一旦这个视图控制器被导航控制个管理了
    // 那么视图控制器中的  导航控制器属性 就会有值
    // 那么这个值 就是管理他的那个导航控制器
    [self.navigationController pushViewController:secondVC animated:YES];
    [secondVC release];

返回上一级控制器

[self.navigationController popViewControllerAnimated:YES];

导航条UINavigationBar

  • 导航条 44
  • 状态栏 20
  • 导航条的高度就是44 状态的背景 是导航条延伸过去的

设置导航条的背景颜色

self.navigationController.navigationBar.barTintColor = [UIColor cyanColor];

设置背景图片

  • 横屏状态下 导航条高32
  • 1.图片高度 < 44 效果:平铺
  • 2.图片高度 = 44 效果:只覆盖导航条
  • 3.图片高度 大于 44 小于 64 效果:平铺
  • 4.图片高度 = 64 效果:正好覆盖导航条与状态栏
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"32064"] forBarMetrics:(UIBarMetricsDefault)];

关闭半透明

// iOS 7.0之后 导航条默认时半透明的
// 起始点是屏幕的左上角 开始计算
// 关闭半透明 后 起始点从导航条下面  开始计算
self.navigationController.navigationBar.translucent = NO;
// 一般咱们使用默认的半透明状态 不用考虑起始点的

导航栏按钮UIBarButtonItem

三种方式初始化左右按钮

// 标题初始化 左按钮
//    UIBarButtonItem *barButton = [[UIBarButtonItem alloc] initWithTitle:@"左按钮" style:(UIBarButtonItemStylePlain) target:self action:@selector(barButtonClick:)];
//    设置左按钮  当前页面上的  按钮
//    self.navigationItem.leftBarButtonItem = barButton;
//    [barButton release];

// 用图片初始化 右边的按钮
    UIBarButtonItem *rightBarButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"right"] style:(UIBarButtonItemStylePlain) target:self action:@selector(barButtonRight:)];
    self.navigationItem.rightBarButtonItem = rightBarButton;
    [rightBarButton release];

// 用系统的样式初始化左边的按钮
UIBarButtonItem *sysetemBarButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:(UIBarButtonSystemItemSave) target:self action:@selector(barButtonClick:)];
self.navigationItem.leftBarButtonItem = sysetemBarButton;
 [sysetemBarButton release];

设置页面的导航栏标题

self.navigationItem.title = @"首页";

在标题位置设置一个视图(位置不能更改 居中显示)

 self.navigationItem.titleView = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 150, 44)];
    self.navigationItem.titleView.backgroundColor = [UIColor cyanColor];

    [self.navigationItem.titleView release];

[TwistedFate]MVC视图控制器

MVC 基本介绍 UIViewController是MVC设计模式的核⼼。 MVC是⼀个框架级的设计模式。 M是Model,主要⽤于建⽴数据模型(即数据的结构) V是View,我们能看到的所...
  • ShadowOfMaster
  • ShadowOfMaster
  • 2015年11月13日 20:29
  • 183

视图控制器中navigationItem中backBarButtonItem设置问题

//1.在当前视图控制器中写了如下代码: UIBarButtonItem *back = [[UIBarButtonItem alloc]initWithTitle:@”QQ” style:UIBa...
  • qq_32812243
  • qq_32812243
  • 2016年04月05日 22:00
  • 292

iOS开发系列课程(05) --- 导航视图控制器

导航视图控制器是一个特殊的容器视图控制器,它可以维护有明确层次关系的视图之间的切换。...
  • jackfrued
  • jackfrued
  • 2015年09月07日 19:50
  • 2618

[TwistedFate]容器视图控制器 视图生命周期

容器视图控制器如果不想替换控制器的自带视图self.view 就在viewDidLoad方法中书写添加SecondViewController作为根视图控制器的子控制器// 添加子控制器 se...
  • ShadowOfMaster
  • ShadowOfMaster
  • 2015年11月14日 10:29
  • 185

导航视图控制器

APPDELEGATE #import @interface AppDelegate : UIResponder UIApplicationDelegate> @property (ret...
  • qq_25549019
  • qq_25549019
  • 2015年03月01日 21:49
  • 222

ios开发之视图控制器(UIViewController)-- 详解

由于本人也是初学ios开发,下面分享一下本人在自学中关于视图控制器(UIViewController)的多种创建方法的总结(详解)。 控制器的创建方式 注意: 以下代码都是在(Xcode 6...
  • iphone5solo
  • iphone5solo
  • 2015年08月19日 12:12
  • 1736

UI导航视图控制器

RootViewController *rootVc = [[RootViewController alloc] init]; // 创建导航视图控制器 UINavigationCon...
  • NSString_lin
  • NSString_lin
  • 2015年12月16日 15:38
  • 149

iOS UI07_导航视图控制器

// // MainViewController.m // UI07_导航视图控制器 // // Created by dllo on 15/8/6. // Copyright (c) 201...
  • cheng_xiansheng
  • cheng_xiansheng
  • 2015年08月07日 08:36
  • 498

UI07_导航视图控制器

模态转换, 视图切换
  • u013336745
  • u013336745
  • 2015年09月22日 19:08
  • 188

Objective--C 导航视图控制器

导航视图器相当于视图器的一个总管理者,在根视图创建后,任何一个视图控制器都能使用 一:创建 // 创建视图控制器 RootViewController *rootVC = [[Root...
  • u011535252
  • u011535252
  • 2016年11月09日 09:55
  • 116
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[TwistedFate]导航视图控制器
举报原因:
原因补充:

(最多只允许输入30个字)