学习IOS开发UI篇--UINavigationController/Segue
2014-06-07 23:04
471 查看
UINavigationController的使用步骤
1.初始化UINavigationController
2.设置UIWindow的rootViewController为UINavigationController
3.根据具体情况,通过push方法添加对应个数的子控制器
UINavigationController的自控制器
UINavigationController以栈的形式保存子控制器
@property(nonatomic,copy) NSArray *viewControllers;
@property(nonatomic,readonly) NSArray *childViewControllers;
使用push方法能将某个控制器压入栈
- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated;
使用pop方法可以移除控制器
将栈顶的控制器移除(销毁)
- (UIViewController *)popViewControllerAnimated:(BOOL)animated;
- (NSArray *)popToViewController:(UIViewController *)viewController animated:(BOOL)animated;回到指定的子控制器
- (NSArray *)popToRootViewControllerAnimated:(BOOL)animated;回到根控制器(栈底控制器)
UINavigationController修改导航栏的内容
UINavigationItem有以下属性影响着导航栏的内容
@property(nonatomic,retain) UIBarButtonItem *backBarButtonItem; 左上角的返回按钮
@property(nonatomic,retain) UIView *titleView; 中间的标题视图
@property(nonatomic,copy) NSString *title; 中间的标题文字
@property(nonatomic,retain) UIBarButtonItem *leftBarButtonItem; 左上角的视图
@property(nonatomic,retain) UIBarButtonItem *rightBarButtonItem; 右上角的视图
Segue的属性:
@property (nonatomic, readonly) NSString *identifier; 唯一标识
@property (nonatomic, readonly) id sourceViewController; 来源控制器
@property (nonatomic, readonly) id destinationViewController; 目标控制器
自动跳转(不需要进行判断操作的时候) 按住Control键点击按钮直接拖线到下一个控制器
手动跳转(需要进行判断操作的时候) 按住Control键,从来源控制器拖线到目标控制器
在恰当的时刻,使用perform方法执行对应的Segue
[self performSegueWithIdentifier:@"login2contacts" sender:nil]; Segue必须由来源控制器来执行,也就是说,这个perform方法必须由来源控制器来调用
调用sourceViewController的下面方法,做一些跳转前的准备工作并且传入创建好的Segue对象
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender; 在这个方法中可以取出目标控制器,对其进行数据操作(系统自动调用- (void)perform将目标控制器压入栈中)
数据的顺传与逆传:
顺传入上边进行的操作
逆传需要设置代理,让之前的源控制作为之前目标控制器的代理,在之前的目标控制器中传入数据,通过代理调用协议方法,完成数据的传递
1.初始化UINavigationController
2.设置UIWindow的rootViewController为UINavigationController
3.根据具体情况,通过push方法添加对应个数的子控制器
UINavigationController的自控制器
UINavigationController以栈的形式保存子控制器
@property(nonatomic,copy) NSArray *viewControllers;
@property(nonatomic,readonly) NSArray *childViewControllers;
使用push方法能将某个控制器压入栈
- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated;
使用pop方法可以移除控制器
将栈顶的控制器移除(销毁)
- (UIViewController *)popViewControllerAnimated:(BOOL)animated;
- (NSArray *)popToViewController:(UIViewController *)viewController animated:(BOOL)animated;回到指定的子控制器
- (NSArray *)popToRootViewControllerAnimated:(BOOL)animated;回到根控制器(栈底控制器)
UINavigationController修改导航栏的内容
UINavigationItem有以下属性影响着导航栏的内容
@property(nonatomic,retain) UIBarButtonItem *backBarButtonItem; 左上角的返回按钮
@property(nonatomic,retain) UIView *titleView; 中间的标题视图
@property(nonatomic,copy) NSString *title; 中间的标题文字
@property(nonatomic,retain) UIBarButtonItem *leftBarButtonItem; 左上角的视图
@property(nonatomic,retain) UIBarButtonItem *rightBarButtonItem; 右上角的视图
Segue的属性:
@property (nonatomic, readonly) NSString *identifier; 唯一标识
@property (nonatomic, readonly) id sourceViewController; 来源控制器
@property (nonatomic, readonly) id destinationViewController; 目标控制器
自动跳转(不需要进行判断操作的时候) 按住Control键点击按钮直接拖线到下一个控制器
手动跳转(需要进行判断操作的时候) 按住Control键,从来源控制器拖线到目标控制器
在恰当的时刻,使用perform方法执行对应的Segue
[self performSegueWithIdentifier:@"login2contacts" sender:nil]; Segue必须由来源控制器来执行,也就是说,这个perform方法必须由来源控制器来调用
调用sourceViewController的下面方法,做一些跳转前的准备工作并且传入创建好的Segue对象
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender; 在这个方法中可以取出目标控制器,对其进行数据操作(系统自动调用- (void)perform将目标控制器压入栈中)
数据的顺传与逆传:
顺传入上边进行的操作
逆传需要设置代理,让之前的源控制作为之前目标控制器的代理,在之前的目标控制器中传入数据,通过代理调用协议方法,完成数据的传递
相关文章推荐
- 学习IOS开发UI篇--UICollectionViewController的基本使用
- 学习IOS开发UI篇--UITabBarController
- iOS 开发学习之 User Interface(7)UINavigationController 与 UITabBarController
- 斯坦福大学公开课 iOS应用开发教程学习笔记(第六课)多个MVC的程序和故事版、UINavigationController、 Segues
- iOS 5 Storyboard 学习之 Tabbar Controller,Navigation Controller (3) 深入Segue,Class,Protocol,Delegate的基本使用
- IOS学习之UINavigationController详解与使用(一)添加UIBarButtonItem
- IOS学习之UINavigationController详解与使用(二)页面切换和segmentedController
- IOS学习之UINavigationController详解与使用(一)添加UIBarButtonItem
- iOS 5 Storyboard 学习之 Tabbar Controller,Navigation Controller (3) 深入Segue,Class,Protocol,Delegate的基本使
- [iOS]UINavigationController UITabBarController UITableView学习笔记
- IOS学习之UINavigationController详解与使用(二)页面切换和segmentedController
- IOS学习之UINavigationController详解与使用(二)页面切换和segmentedController
- IOS学习之UINavigationController详解与使用(二)页面切换和segmentedController
- iOS学习之UINavigationController详解与使用(一)添加UIBarButtonItem
- IOS学习之UINavigationController详解与使用:添加UIBarButtonItem
- IOS学习之UINavigationController详解与使用(一)添加UIBarButtonItem
- iOS学习之UINavigationController详解与使用(三)ToolBar
- IOS学习之UINavigationController详解与使用(三)ToolBar
- IOS学习之UINavigationController详解与使用(二)页面切换和segmentedController
- IOS学习之UINavigationController详解与使用(二)页面切换和segmentedController