StoryBoard - Segue 简单笔记
StoryBoard - Segue 简单笔记
个人很喜欢使用 StoryBoard。
创建 Segue
在 StoryBoard 中创建 Segue 一般如上图两种拉线:
- 红线: SrcVc 有跳转到 DestVc 的 Segue
- 蓝线: SrcVc 中 GoDestVc 按钮执行跳转到 DestVc 的 Segue
使用 Segue
/**
* 按钮点击事件
*/
- (IBAction) btnDidSelected:(UIButton *)sender {
[self performSegueWithIdentifier:@"ShowDestVc" sender:sender];
}
/**
* 当 segue 执行的时候,会调用该方法
*
* @param segue 联线
* @param sender 发送器参数
*
* @note sender 是 performSegueWithIdentifier:sender: 中的 sender 参数
*
*/
- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
DestVc *destVc = segue.destinationViewController;
destVc.name = @"iMock";
}
说明:
上面代码是红线创建 Segue 时的使用写法,需要开发者手动调用 -performSegueWithIdentifier:sender: 来执行 Segue 。
如果是蓝线创建,则不需要手动执行 -performSegueWithIdentifier:sender: 。
-prepareForSegue:sender: 方法是在 Segue 执行时调用的,用来传输数据,如果没有数据传输,则不需要实现。
自定义 Segue
默认的过渡: Show(替代被废弃的 Push)、Show Detail、Present Modally、Present As Popover
新建一个继承自 UIStoryBoardSegue 的类,重写其 -perform (添加自定义的过渡动画)方法,在 StoryBoard 中关联对应的 Segue(类型选择 custom) 和该类即可。