首页 > 代码库 > StoryBoard初探(三):自定义Segue以及页面间传值
StoryBoard初探(三):自定义Segue以及页面间传值
自定义Segue
StoryBoard三种连接中,有一种类型是Custom,开发者可以使用自定义的Segue,自定义Segue类需要继承类UIStoryBoardSegue,并重写perform方法:
- (void)perform { NSLog(@"使用自定义连接"); [self.sourceViewController presentViewController:self.destinationViewController animated:YES completion:nil]; }
Ctrl连线ViewController的按钮到ViewController2,并选择Segue类型为Custom,点击连接,并将连接的类别设置为刚刚自定义的PresentSegue。
运行效果和直接使用Modal类型连接效果一样:
当然也可以自定义Push类型的连接
页面传值
如果希望页面之间的内容有所关联,则需要实现页面间传值,在StoryBoard中,页面传值是通过prepareForSegue:sender:方法实现。先设置连接的Identifier为2vc2(可以根据自己的需要命名,保持跟代码中的字符串一致就OK)
拖拽一个UITextView实例到页面2上,并关联输出口recTextView
在ViewController.m中添加如下代码:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { if ([[segue identifier] isEqualToString:@"2vc2"]) { ViewController2 *vc2 = (ViewController2 *)[segue destinationViewController]; vc2.passText = @"使用prepareForSegue:sender进行页面传值"; } }在ViewController2.m中把passText的值赋给recTextView.text
- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. _recTextView.text = _passText; }
模拟器运行:
StoryBoard初探(三):自定义Segue以及页面间传值
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。