@property(nonatomic,copy) NSArray *viewControllers;
@property(nonatomic,readonly) NSArray *childViewControllers;
- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated;
- (UIViewController *)popViewControllerAnimated:(BOOL)animated;
- (NSArray *)popToViewController:(UIViewController *)viewController animated:(BOOL)animated;回到指定的子控制器
@property (nonatomic, readonly) NSString *identifier; 唯一标识
@property (nonatomic, readonly) id sourceViewController; 来源控制器
@property (nonatomic, readonly) id destinationViewController; 目标控制器
自动跳转(不需要进行判断操作的时候) 按住Control键点击按钮直接拖线到下一个控制器
手动跳转(需要进行判断操作的时候) 按住Control键,从来源控制器拖线到目标控制器
[self performSegueWithIdentifier:@"login2contacts" sender:nil]; Segue必须由来源控制器来执行,也就是说,这个perform方法必须由来源控制器来调用
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender; 在这个方法中可以取出目标控制器,对其进行数据操作(系统自动调用- (void)perform将目标控制器压入栈中)
数据的顺传与逆传:
顺传入上边进行的操作
逆传需要设置代理,让之前的源控制作为之前目标控制器的代理,在之前的目标控制器中传入数据,通过代理调用协议方法,完成数据的传递