zoukankan      html  css  js  c++  java
  • 关于iOS代理传值那些小事

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

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

    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;

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

    }

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

     

     

     

  • 相关阅读:
    DataTable轉EXCEL 3/21
    中風預防知識
    unable to convert mysql date/time value to system.data.time 11/14
    win8 获得地理坐标 GIS
    页面嵌套 GIS
    win8 metro 弹出一个部分 GIS
    正则表达式基础 之 ? GIS
    windows phone pivot 开发过程中的使用心得 GIS
    线程不安全 GIS
    线程基础知识 GIS
  • 原文地址:https://www.cnblogs.com/YaoWang/p/4717753.html
Copyright © 2011-2022 走看看