【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
第二:手动型Segue
第二:手动型Segue设置标识
第二:手动型Segue
![](//bbsmax.ikafan.com/static/L3Byb3h5L2h0dHBzL2ltYWdlczAuY25ibG9ncy5jb20vYmxvZzIwMTUvNTg5MTMzLzIwMTUwNC8xNzE5NDQ1MzM1NDQ4MzgucG5n.jpg)
第二:手动型Segue设置标识
![](//bbsmax.ikafan.com/static/L3Byb3h5L2h0dHBzL2ltYWdlczAuY25ibG9ncy5jb20vYmxvZzIwMTUvNTg5MTMzLzIwMTUwNC8xNzE5NDUwMTY1MTk5MDMucG5n.jpg)
-->
作者:Darren
微博:@IT_攻城师
github:@Darren90
博客:http://www.cnblogs.com/fengtengfei/
欢迎您的访问...