iOS开发-UI (六)Navigation

知识点:

1.UINavigationController

2.UINavigationItem

3.UINavigationBar

4.UINavigationController视图切换

========================

UINavigationController

1.什么是导航控制器

作用:管理视图控制器

2.UINavigationController对象创建

1)初始化方式

- (id)initWithRootViewController:(UIViewController *)rootViewController

2)UINavigationController组成:

(1)navigationBar(高度44)

(2)customContent  — 有自定义的ViewController提供

(3)navigationToolbar(高度44)

3.通过UINavigationController对象切换视图

1)将视图控制器压入导航控制器的栈容器中

- (void)pushViewController:(UIViewController *)viewController

animated:(BOOL)animated

2)将视图控制器从导航控制器中弹出

- (UIViewController *)popViewControllerAnimated:(BOOL)animated

========================

UINavigationItem

UINavigationItem包含了:

(1)backBarButtonItem(由上一级ctl的属性决定)

(2)title/titleView(当前ctl)

(3)rightBarButtonItem(当前ctl)

(4)leftBarButtonItem(当前ctl)

1.UINavigationItem和UIViewController关系

navigationItem是UIViewController的一个属性

这个属性是为UINavigationController服务的

2.创建UIBarButtonItem

1)创建系统自带的UIBarButtonSystemItem

- (id)initWithBarButtonSystemItem:(UIBarButtonSystemItem)systemItem

target:(id)target

action:(SEL)action;

self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemBookmarks target:self action:@selector(btnAction)];

2)文字UIBarButtonItem的创建方式

- (id)initWithTitle:(NSString *)title

style:(UIBarButtonItemStyle)style

target:(id)target

action:(SEL)action

self.navigationItem.rightBarButtonItem = [[UIBarButtonItem new];

3)图片UIBarButtonItem的创建方式

- (id)initWithImage:(UIImage *)image

style:(UIBarButtonItemStyle)style

target:(id)target

action:(SEL)action

self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"refresh_30"] style:UIBarButtonItemStylePlain target:nil action:nil];

3)如何将UIBarButtonItem加入到导航的左边和右边

@property (nonatomic, retain) UIBarButtonItem *leftBarButtonItem

@property (nonatomic, retain) UIBarButtonItem *rightBarButtonItem

@property (nonatomic, retain) UIBarButtonItem *backBarButtonItem

self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:b];

3.定制UIBarButtonItem

4.定制导航中间的titleView

self.navigationItem.title = @"控制器2";

5.定制backBarButtonItem

注意:设置当前控制器的backBarButtonItem需要在下一个控制器中才能显示

========================

UINavigationBar

1.如何往UINavigationBar贴图

设置背景图片

- (void)setBackgroundImage:(UIImage *)backgroundImage

forBarMetrics:(UIBarMetrics)barMetrics

[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"1.png"] forBarMetrics:UIBarMetricsDefault];

2.如何设置UINavigationBar设置颜色

@property (nonatomic, retain) UIColor *tintColor

@property (nonatomic, retain) UIColor *barTintColor

3.如何设置透明颜色

1)设置UINavigationBar的样式

@property (nonatomic, assign) UIBarStyle barStyle

self.navigationController.navigationBar.barStyle= UIBarStyleBlack;

2)是否透明

@property (nonatomic, assign, getter=isTranslucent) BOOL translucent

//获取管理当前视图控制器的导航控制器(如果这个视图控制器没有受到导航控制器管理,此方法会返回空指针)

//设置导航栏为不透明,坐标点会自动下移64个单位

self.navigationController.navigationBar.translucent = NO;

3)改变导航栏的颜色

@property(nonatomic,retain) UIColor *barTintColor

//设置背景色

self.navigationController.navigationBar.barTintColor = [UIColor colorWithRed:arc4random()%256/255.0 green:arc4random()%256/255.0 blue:arc4random()%256/255.0 alpha:1.0];

4.如何隐藏UINavigationBar

1)不带动画隐藏

@property (nonatomic, getter=isNavigationBarHidden) BOOL  navigationBarHidden

//显示

self.navigationController.navigationBarHidden = NO;

2)带动画隐藏

- (void) setNavigationBarHidden:(BOOL)navigationBarHidden

animated:(BOOL)animated

[self.navigationController setNavigationBarHidden:YES animated:YES];

========================

UINavigationController视图切换

1.获取导航控制器中的视图数组

@property (nonatomic, copy) NSArray *viewControllers

2.将视图控制器压入导航控制器的栈容器中

- (void)pushViewController:(UIViewController *)viewController

animated:(BOOL)animated

//视图控制器入栈

[self.navigationController pushViewController:ctlA animated:YES];

3.将视图控制器从导航控制器中弹出

- (UIViewController *)popViewControllerAnimated:(BOOL)animated

4.切换至指定的视图控制器(该控制器必须在当前导航控制器中的栈中)

- (NSArray *)popToViewController:(UIViewController *)viewController

animated:(BOOL)animated

5.回到根视图控制器

- (NSArray *)popToRootViewControllerAnimated:(BOOL)animated

时间: 2024-10-06 16:18:03

iOS开发-UI (六)Navigation的相关文章

iOS开发-UI 从入门到精通(二)

iOS开发-UI 从入门到精通(二)是对 iOS开发-UI 从入门到精通(一)知识点的巩固,主要以习题练习为主,增强实战经验,为以后做开发打下坚实的基础! ※开发环境和注意事项: 1.前期iOS-UI开发我们需要手动管理内存,所以我们要把ARC关掉(Xcode关掉ARC的步骤): (1)打开Xcode选中当前工程: (2)选中Build Settings: (3)在输入框内输入count: (4)选择Objective-C Automatic Reference Counting  将其设置为 

iOS开发UI篇-UIWindow简单介绍

iOS开发UI篇—UIWindow简单介绍 一.简单介绍 UIWindow是一种特殊的UIView,通常在一个app中只会有一个UIWindow iOS程序启动完毕后,创建的第一个视图控件就是UIWindow,接着创建控制器的view,最后将控制器的view添加到UIWindow上,于是控制器的view就显示在屏幕上了 一个iOS程序之所以能显示到屏幕上,完全是因为它有UIWindow.也就说,没有UIWindow,就看不见任何UI界面 补充:UIWindow是创建的第一个视图控件(创建的第一个

iOS开发UI篇—UIWindow简单介绍

iOS开发UI篇—UIWindow简单介绍 - 文顶顶 - 博客园 文顶顶 iOS开发UI篇—UIWindow简单介绍 iOS开发UI篇—UIWindow简单介绍 一.简单介绍 UIWindow是一种特殊的UIView,通常在一个app中只会有一个UIWindow iOS程序启动完毕后,创建的第一个视图控件就是UIWindow,接着创建控制器的view,最后将控制器的view添加到UIWindow上,于是控制器的view就显示在屏幕上了 一个iOS程序之所以能显示到屏幕上,完全是因为它有UIWi

iOS开发UI篇—Modal简单介绍

iOS开发UI篇—Modal简单介绍 一.简单介绍 除了push之外,还有另外一种控制器的切换方式,那就是Modal 任何控制器都能通过Modal的形式展?出来 Modal的默认效果:新控制器从屏幕的最底部往上钻,直到盖住之前的控制器为? 二.代码说明 新建一个项目,在Application的代理中添加window和控制器. TXAppDelegate.m文件 1 #import "TXAppDelegate.h" 2 #import "TXOneViewController

iOS开发UI篇—推荐两个好用的Xcode插件(提供下载链接)

iOS开发UI篇—推荐两个好用的Xcode插件(提供下载链接) 这里推荐两款好用的Xcode插件,并提供下载链接. 一.插件和使用如下: 1.两款插件 对项目中图片提供自动提示功能的插件:KSImageNamed-Xcode-master 提供快速创建自动注释:VVDocumenter-Xcode-master 2.使用介绍: (1)KSImageNamed-Xcode-master的使用 安装该插件后,会对文件中图片进行智能提示. (2)VVDocumenter-Xcode-master能提供

iOS开发UI篇—使用嵌套模型完成的一个简单汽车图标展示程序

iOS开发UI篇—使用嵌套模型完成的一个简单汽车图标展示程序 一.plist文件和项目结构图 说明:这是一个嵌套模型的示例 二.代码示例: YYcarsgroup.h文件代码: // // YYcarsgroup.h // 07-汽车展示(高级) // // Created by apple on 14-5-28. // Copyright (c) 2014年 itcase. All rights reserved. // #import <Foundation/Foundation.h> @

iOS开发UI篇—实现UItableview控件数据刷新

iOS开发UI篇—实现UItableview控件数据刷新 一.项目文件结构和plist文件 二.实现效果 1.说明:这是一个英雄展示界面,点击选中行,可以修改改行英雄的名称(完成数据刷新的操作). 运行界面: 点击选中行: 修改数据后自动刷新: 三.代码示例 数据模型部分: YYheros.h文件 // // YYheros.h // 10-英雄展示(数据刷新) // // Created by apple on 14-5-29. // Copyright (c) 2014年 itcase. A

iOS开发UI篇—UITableviewcell的性能优化和缓存机制

iOS开发UI篇—UITableviewcell的性能问题 一.UITableviewcell的一些介绍 UITableView的每一行都是一个UITableViewCell,通过dataSource的 tableView:cellForRowAtIndexPath:方法来初始化每?行 UITableViewCell内部有个默认的子视图:contentView,contentView是UITableViewCell所显示内容的父视图,可显示一些辅助指示视图 辅助指示视图的作?是显示一个表示动作的

iOS开发UI篇—UITableview控件基本使

iOS开发UI篇—UITableview控件基本使用 一.一个简单的英雄展示程序 NJHero.h文件代码(字典转模型) #import <Foundation/Foundation.h> @interface NJHero : NSObject /** * 头像 */ @property (nonatomic, copy) NSString *icon; /** * 名称 */ @property (nonatomic, copy) NSString *name; /** * 描述 */ @