总所周知,我们每个视图控制器经常需要做一些传值的操作,所以常见的一些譬如代理,通知等方法出现,今天我来写一下代理传值的具体方法;

 

代理传值分为以下几个步骤:

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;

//这个值传了过来,然后随便用。

}

以上就是大体步骤,希望对您有一些帮助。

 

 

 

posted on 2015-08-10 13:26  奋斗的王布斯  阅读(185)  评论(0编辑  收藏  举报