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;

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

    }

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

     

     

     

  • 相关阅读:
    C语言中字符串常用函数--strcat,strcpy
    linux下core dump【总结】
    C语言memset()函数:将内存的前n个字节设置为特定的值
    const的理解、const指针、指向const的指针
    C99标准的新特性
    ISO C语言新标准(C11)
    哪个版本的gcc才支持c11
    不使用session,借助redis实现验证码
    google浏览器截图工具 Open Screenshot(代码截图)
    springmvc+jpa实现分页的两种方式
  • 原文地址:https://www.cnblogs.com/YaoWang/p/4717753.html
Copyright © 2011-2022 走看看