1。嵌入Navigation Controller :Editor -> Embed in -> Navigation Controller
2。在IB上创建segue,并设置identifier
3。传递数据
- (BOOL)shouldPerformSegueWithIdentifier:(NSString *)identifier sender:(id)sender //是否执行segue跳转
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender //跳转过程中的参数传递
e.g.
- (BOOL) shouldPerformSegueWithIdentifier:(NSString *)identifier sender:(id)sender{
if ([identifier isEqualToString:@"segueId"]){
return NO;
}
return YES;
}
//通过比对segueId,获取到跳转的目标控制器,进而取到其公开的属性和方法进行设置
- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if ([segue.identifier isEqualToString:@"segueId"]){
SecondViewController *nextController = segue.destinationViewController;
nextController.property 。。。。。;
[ nextController method ] ;
}
}
4。嵌入tabBarController:Editor -> Embed in-> Tab Bar Controller
一般是先嵌入Navigation Controller,再嵌入Tab Bar Controller(Relationship Segue -view controllers)
5。自定义Segue类
Style:Custom 继承UIStoryboardSegue override方法:- (void)perform
+ (void)transitionFromView:(UIView *)fromView toView:(UIView *)toView duration:(NSTimeInterval)duration options:(UIViewAnimationOptions)options completion:(void (^)(BOOL finished))completion //跳转动画呈现方式
e.g.
- (void) perform{
UIViewController *sourceVC = self.sourceViewController;
UIViewController *destinationVC = self.destinationViewController;
[UIView transitionFromView:source.view toView:destination.view
duration:0.50f //动画持续时间
options: UIViewAnimationOptionTransitionFlipFromTop //动画类型
completion:^(BOOL finished) {
NSLog(@"Transitioning is finished");
}];
}