UI 设置代理 实现视图控制器间的传值操作
2014-06-13 19:11
288 查看
如果当前有两个视图控制器 MainViewController 和 SecondViewController
实现让SecondViewController 传值给 MainViewController :
1. 首先在 SecondViewController.h
// 1. 协议传值
// 协议由后面的视图控制器制定
@protocol SecondDelegate <NSObject>
// 传值协议的方法需要带一个或多个参数
- (void) passValueWithString:(NSString *)string;
@end
@interface SecondViewController : UIViewController
// 2.设置自己的 代理人 属性
@property (nonatomic, assign) id<SecondDelegate>delegate;
2. 在 SecondViewController.m 的实现方法中:
- (void)buttonClicked:(UIButton *)button
{
// 3.
让自己的代理人 调用
协议方法
[self.delegate passValueWithString:button.currentTitle];
}
3. 在MainViewController.h 中:
// 4. 由第一个视图控制器
签订 第二个视图控制器的协议
@interface MainViewController : UIViewController<SecondDelegate>
4. 在MainViewController.m 中:
- (void)buttonClicked:(UIButton *)button
{
SecondViewController *secondVC = [[SecondViewController alloc] init];
// 5.
给第二个视图控制器 指定代理人
secondVC.delegate = self;
}
实现让SecondViewController 传值给 MainViewController :
1. 首先在 SecondViewController.h
// 1. 协议传值
// 协议由后面的视图控制器制定
@protocol SecondDelegate <NSObject>
// 传值协议的方法需要带一个或多个参数
- (void) passValueWithString:(NSString *)string;
@end
@interface SecondViewController : UIViewController
// 2.设置自己的 代理人 属性
@property (nonatomic, assign) id<SecondDelegate>delegate;
2. 在 SecondViewController.m 的实现方法中:
- (void)buttonClicked:(UIButton *)button
{
// 3.
让自己的代理人 调用
协议方法
[self.delegate passValueWithString:button.currentTitle];
}
3. 在MainViewController.h 中:
// 4. 由第一个视图控制器
签订 第二个视图控制器的协议
@interface MainViewController : UIViewController<SecondDelegate>
4. 在MainViewController.m 中:
- (void)buttonClicked:(UIButton *)button
{
SecondViewController *secondVC = [[SecondViewController alloc] init];
// 5.
给第二个视图控制器 指定代理人
secondVC.delegate = self;
}
相关文章推荐
- 【iOS开发-26】利用协议代理实现导航控制器UINavigationController视图之间的正向传值和反向传值
- 2016/5/6 thinkphp ①框架 ② 框架项目部署 ③MVC模式 ④控制器访问及路由解析 ⑤开发和生产模式 ⑥控制器和对应方法创建 ⑦视图模板文件创建 ⑧url地址大小写设置 ⑨空操作空控制器 ⑩项目分组
- 【iOS开发-26】利用协议代理实现导航控制器UINavigationController视图之间的正向传值和反向传值
- iOS开发利用协议代理实现导航控制器UINavigationController视图之间的正向传值和反向传值
- UI: 操作导航控制器的视图控制器数组
- 154在屏幕中绘图时设置透明度(扩展知识:为图片视图添加点击手势识别器,来实现点击事件操作)
- ipad UISplitViewController 导航视图控制器标题设置
- 利用协议代理实现导航控制器UINavigationController视图之间的正向传值和反向传值
- 权限设置页面之间PK用户体验(功能是否合理?操作是否方便?编程实现是否简单?)
- 利用RIL代理接口实现短信的操作之短信的接收
- 用动态代理实现用AOP对数据库进行操作
- apache POI3.2 java操作excel 设置数据有效性,实现excel单元格列表和提示
- C#+ArcEngine菜单实现视图基本操作的问题
- 操作权限是如何定义的?如何设置操作权限?回答客户实现每个操作人员不同操作权限的疑问
- Handler 实现异步操作, 注意:不能异步更新UI
- iOS Dev 深入浅出 导航控制器(二)with表视图相关操作
- 权限设置页面之间PK用户体验(功能是否合理?操作是否方便?编程实现是否简单?)
- js操作的跨域问题:js实现自动设置框架载入页面高度的问题
- WebBrowser代理设置,可以根据IP,线程ID等设置代理,实现了多WebBrowser同时使用不同代理
- 单文档 多视图中 如何屏蔽分割条的操作 和设置分隔条的大小