总所周知,我们每个视图控制器经常需要做一些传值的操作,所以常见的一些譬如代理,通知等方法出现,今天我来写一下代理传值的具体方法;
代理传值分为以下几个步骤:
1.委托需要做的工作有:
1.1定义协议与方法
1.2声明委托变量
1.3设置代理
1.4通过委托变量调用委托方法
2.代理需要做的工作有:
2.1遵循协议
2.2实现委托方法
1.定义协议与方法:
首先博主想要将TabBar里面的值传给WYTabBarController中
先在TabBar中定义协议:
#import <UIKit/UIKit.h>
//给协议起个名字
@protocol PassValueDelegate
//定义传值方法
- (void)passValue:(long int)values;
@end
@interface TabBar : UIView
1.2定义委托变量
@property(retain,nonatomic) id<PassValueDelegate>delegate;
//定义代理的格式,中间需要学协议的名字 左面必须是id 右边随意;
@end
在tabBar.m文件中
- (void)click:(UIButton *)button
{
// self.selectedIndex = button.tag;
NSLog(@"btn.tag is %ld",(long)button.tag);
[self.delegate passValue:button.tag];
//告诉代理你要传的什么,格式就是这样的
//
}
1.3设置代理
在WYTabBarController
#import <UIKit/UIKit.h>
#import "TabBar.h"
@interface WYTabBarController : UITabBarController<PassValueDelegate>
//表示这个文件能够监听这个代理方法;
@end
1.4通过委托调用委托方法
- (void)passValue:(long)values
{
NSLog(@"values is %ld",values);
self.selectedIndex = values;
//这个值传了过来,然后随便用。
}
以上就是大体步骤,希望对您有一些帮助。