博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
六步完成跳转Delegate方法
阅读量:4197 次
发布时间:2019-05-26

本文共 1936 字,大约阅读时间需要 6 分钟。

转载自:http://www.dasheyin.com/liu_bu_wan_cheng_tiao_zhuan_delegate_fang_fa.html

在教程《》中,我讲解了如何使用iOS中的delegate,但是有人写信觉得步骤不是很清楚,所以我在这里单独写一个清晰版的。

这个教程就是单独分出来,讲解如何做一个delegate+segue的跳转方法的,步骤如下:

 

第一步,从起始的控件做一条联线(segue)到目标场景。

如图

 

 

第二步,将这个联线制定一个独特的Identifier。

 

单机这个segue,在右边的inspector里面修改。

第三步,为目标场景制作一个代理(delegate)方法。

 

首先,在第二个场景(目标场景)的M文件中加入下面的代码

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
#import 
 @class secondViewController; @protocol SecondViewControllerDelegate
- (void)secondViewControllerDidJump: (secondViewController *)controller; @end @interface secondViewController : UITableViewController @property (strong,nonatomic) NSArray *choices;@property (nonatomic, weak) id
delegate; - (IBAction)jump:(id)sender; @end

 

这些代码制作并声明了了一个代理,还声明了一个IBAction用来进行delegate的跳转。

第四步,在Cancel和Done按钮,以及所有其他你需要和原始场景交流的地方调用代理方法。

 

将下列代码加入第二个场景的M文件中。

 

12345678910
- (IBAction)jump:(id)sender{[self.delegate secondViewControllerDidJump:self];}

这将按下按钮的动作转向了代理方法。

之后在Storyboard中,用连线的方法连接按钮和IBAction,如图:

 

 

第五步,在原始场景执行代理方法,这将会在用户按下按钮后关闭场景。

 

将下面的代码加入到第一个场景(原始场景)的M文件中。

 

12345678910111213
- (void)secondViewControllerDidCancel:(secondViewController *)controller{[self dismissViewControllerAnimated:YES completion:nil];}

 

这段代码是真正关闭第二个场景的代码,这是iOS5的新方法。

然后,在第一个场景的H文件中,把改ViewController声明为遵循我们创建的代理协议

1
@interface delegateViewController : UIViewController

 

第六步,在原始场景执行prepareForSegue方法。

 

在第一个场景的M文件中加入下面的代码,这些代码真正的将第二个场景会转到第一个场景。

12345678910111213141516171819202122232425262728293031323334353637383940
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{if ([segue.identifier isEqualToString:@"AddPlayer"]){UINavigationController *navigationController =segue.destinationViewController;secondViewController*SecondViewController =[[navigationController viewControllers]objectAtIndex:0];SecondViewController.delegate = self;}} 

 

最后的效果是这样的:

 

 

请注意,要让上面的代码发挥作用你的storyboard必须是这样的:

 

你可能感兴趣的文章
发挥你的SATA硬盘
查看>>
程序解读身份证的密码
查看>>
显卡性能排行榜
查看>>
手机操作系统发展史
查看>>
REST WebService与SOAP WebService的比较
查看>>
数据库迁移
查看>>
数学学科--读到硕士也只是学了皮毛
查看>>
MySQL大小写问题
查看>>
企业级系统架构的理解
查看>>
四大类NoSQL数据库
查看>>
新浪微博XSS攻击事件
查看>>
Eclipse REST 库使用
查看>>
页面的兼容性从认识<!DOCTYPE>开始
查看>>
数字图像处理--空间变换
查看>>
安装制作不用愁—Wise installation入门教程
查看>>
两个程序员的泰国普吉岛之行
查看>>
常见流媒体协议
查看>>
SQL group by的困惑
查看>>
用wifi调试android程序
查看>>
软件开发,维护与支持的困惑
查看>>