【iOS系列】-UINavigationController的使用(Segue传递数据)

【iOS系列】-UINavigationController的使用

UINavigationController是以以栈(先进后出)的形式保存子控制器,

常用属性:

UINavigationItem有以下属性影响着导航栏的内容
//左上角的返回按钮,注返回按钮是要在本视图中进行设置,下一视图中才会显示
@property(nonatomic,retain) UIBarButtonItem *backBarButtonItem;
//中间的标题视图
@property(nonatomic,retain) UIView *titleView;
//中间的标题文字
@property(nonatomic,copy) NSString *title;
//左上角的视图
@property(nonatomic,retain) UIBarButtonItem *leftBarButtonItem;
UIBarButtonItem *rightBarButtonItem 右上角的视图
@property(nonatomic,retain) UIBarButtonItem *rightBarButtonItem;

常用方法

//push进栈
- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated; //pop出栈
将栈顶的控制器移除
- (UIViewController *)popViewControllerAnimated:(BOOL)animated;
//回到指定的子控制器
- (NSArray *)popToViewController:(UIViewController *)viewController animated:(BOOL)animated;
//回到根控制器(栈底控制器)
- (NSArray *)popToRootViewControllerAnimated:(BOOL)animated;

Segue<仅仅针对SB连线>

Segue:Storyboard上每一根用来界面跳转的线,都是一个UIStoryboardSegue对象


属性

//标识
@property (nonatomic, readonly) NSString *identifier;
//来源控制器
@property (nonatomic, readonly) id sourceViewController;
//目标控制器
@property (nonatomic, readonly) id destinationViewController;

操作

Segue的跳转分为两大类:

1:自动:点击按钮,或者控件后,自动执行;

在Storeboard中直接在控件上,按住control键,往目标控制器脱线

2:手动

在源控制器上按住control键,往目标控制器脱线,不涉及具体控件

手动的我们需要设置标识

[self performSegueWithIdentifier:@"XXXX" sender:nil];

手动Segue我们可以在控制器调转前后,执行操作或传递参数,

//在源控制器中执行以下方法

//第一:执行这个可以进行界面跳转,可在相关逻辑判断后进行界面的跳转
[self performSegueWithIdentifier:@"XXXX" sender:nil];
//第二:执行segue后,跳转前会调用,可在这里给下一个控制器传递数据
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender;

第一:自动型Segue

【iOS系列】-UINavigationController的使用(Segue传递数据)

第二:手动型Segue

【iOS系列】-UINavigationController的使用(Segue传递数据)

第二:手动型Segue设置标识

【iOS系列】-UINavigationController的使用(Segue传递数据)


第二:手动型Segue
![](//bbsmax.ikafan.com/static/L3Byb3h5L2h0dHBzL2ltYWdlczAuY25ibG9ncy5jb20vYmxvZzIwMTUvNTg5MTMzLzIwMTUwNC8xNzE5NDQ1MzM1NDQ4MzgucG5n.jpg)

第二:手动型Segue设置标识
![](//bbsmax.ikafan.com/static/L3Byb3h5L2h0dHBzL2ltYWdlczAuY25ibG9ncy5jb20vYmxvZzIwMTUvNTg5MTMzLzIwMTUwNC8xNzE5NDUwMTY1MTk5MDMucG5n.jpg)
-->


作者:Darren

微博:@IT_攻城师

github:@Darren90

博客:http://www.cnblogs.com/fengtengfei/

欢迎您的访问...


上一篇:TestNG分组测试


下一篇:testNG之组测试