代理模式简单说明

如果想从B界面传值给A界面,不包含从B界面push到A界面,简单思路如下:

1.在要传值的界面建立代理,在这里,B需要传值,在B中建立协议:

B.h

@protocol passValue <NSObject>

- (void)setPassValue:(NSString *)str;

@end

2.在B界面设置一个代理属性:

@property (nonatomic,assign) id<passValue> delegate;

3.在需要传值的地方,比如点击事件中:

[self.delegate setPassValue:@"you are win"];

4.A界面接收数据,首先添加B的类和协议

A.h

#import "B.h"

@interface ViewController :UIViewController<passValue>

@end

5.设置代理:

A.m

ViewController1 *view = [[ViewController1 alloc]init];
view.delegate = self;

6.实现代理方法,接收数据:

A.m

-(void)setPassValue:(NSString *)str{
    NSLog(@"%@",str);
}

OK.

时间: 2024-11-13 00:31:10

代理模式简单说明的相关文章

代理模式简单使用

package demo2;interface IEat{ void get();}class EatReal implements IEat{ public void get() { System.out.println("[真实主题类]得到一份食物,然后开始品尝美味"); }}class EatProxy implements IEat { private IEat eat; public EatProxy(IEat eat) { this.eat = eat; } public

C++模拟实现Objective-C协议和代理模式

Objective-C的协议和代理是运用最多的特性之一,可以说在苹果系列开发中无处不在.事实上很多人都不知道其背后的原理.事实上简单点说,这就是设计模式中的代理模式的经典运用.代理模式简单点说就是为其他对象提供一种代理以控制对这个对象的访问,而在OC当中形象点说就是如果A完成一件事,但是自己不能完成,于是他找个代理人B 替他完成这个事情,他们之间便有个协议 (protocol),B继承该协议来完成A代理给他的事情. 举个例子:有一个婴儿,他本身不会自己吃饭和洗澡等等一些事情,于是婴儿就请了一个保

JAVA基础(一)——代理模式

实现java代理一般分为静态代理和动态代理(jdk代理和cglib代理) 代理模式 简单的说就是对原有的业务进行代理,外界通过代理访问真实对象,代理类似现在的中介机构,房产中介就是一个代理,代理房东,租户只要找到代理而无须关心房东是谁,代理能在房东的基础上增强房东的行为. 代理模式代码 JAVA静态代理 业务接口 package com.rrg.proxy.jdk.staticProxy; /** * * @author abc * */ public interface Count { /**

结构型模式:代理模式

文章首发: 结构型模式:代理模式 七大结构型模式之七:代理模式. 简介 姓名 :代理模式 英文名 :Proxy Pattern 价值观 :为生活加点料 个人介绍 : Provide a surrogate or placeholder for another object to control access to it. 为其他对象提供一种代理以控制对这个对象的访问. (来自<设计模式之禅>) 你要的故事 咱们从事 IT 行业,随时都可能上网查东西,如果网络速度慢或者网络访问受限制,那是相当的

设计模式-代理模式JAVA实现

代理模式简单说就是对当前已有类中的方法进行前/后置干预的的一种设计模式,目的是在不对现有业务类进行修改的情况下对指定的现有业务在类级别或方法级别进行修改干预. 实现方式目前有两种,一种是静态代理,纯粹基于设计模式通过代码实现.另一种是动态代理,需要通过JDK默认提供的功能和导入CGLIG功能包来增强实现. 首先进行静态代理的实现. package proxy.staticproxy; import java.util.List; import bean.PickDoc;import bean.P

JAVA笔记7__接口应用/Object类/简单工厂模式/静态代理模式/适配器模式

/** * 接口应用 */ public class Main { public static void main(String[] args) { Person p = new Person("fish7"); p.setIsay(new BeforeGong()); p.say(); p.setIsay(new AfterGong()); p.say(); } } class Person{ //只有在运行期才和say行为关联起来,这就叫面向接口编程 private String

代理模式以及多线程的简单使用

什么是代理? Delegation is a simple and powerful pattern in which one object in a program acts on behalf of, or in coordination with, another object. The delegating object keeps a reference to the other object-the delegate-and at the appropriate time sends

用最简单的例子说明设计模式(三)之责任链、建造者、适配器、代理模式、享元模式

责任链模式 一个请求有多个对象来处理,这些对象是一条链,但具体由哪个对象来处理,根据条件判断来确定,如果不能处理会传递给该链中的下一个对象,直到有对象处理它为止 使用场景 1)有多个对象可以处理同一个请求,具体哪个对象处理该请求待运行时刻再确定 2)在不明确指定接收者的情况下,向多个对象中的一个提交一个请求 3)可动态指定一组对象处理请求,客户端可以动态创建职责链来处理请求 public class Chain { public abstract class Handler { private

设计模式---(简单工厂模式,工厂模式,抽象工程模式),单例模式,代理模式,装饰器

简单工厂模式    简单工厂模式并不属于GoF的23种设计模式.     那么为什么我要用工厂模式呢?请看下面的一段程序.  #include  <iostream> using  namespace  std; class  Fruit  { public:     Fruit(string  name)  {         this-­‐>name  =  name;         if  (name  ==  "apple")  {