IOS之代理(delegate)的开发模式

1.代理模式在ios开发使用的很多比如uitableview,uicollectioin的代理方式,用的太多,表面的意识就是,委托别人做事,帮助viewcontroller去解决一系列问题的,直接上代码了:

在ChilderViewController.h:

#import <UIKit/UIKit.h>

@protocol ChilderViewControllerDlegate <NSObject>

-(void)getColor:(UIColor *)color;

@end

@interface ChilderViewController : UIViewController

@property (nonatomic,weak)id <ChilderViewControllerDlegate>delegate;

@end

在ChilderViewController.m:

#import "ChilderViewController.h"

@interface ChilderViewController ()

@end

@implementation ChilderViewController

- (void)viewDidLoad {

[super viewDidLoad];

self.view.backgroundColor = [UIColor whiteColor];

UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(0, 100, 200, 50)];

[button addTarget:self action:@selector(show) forControlEvents:UIControlEventTouchUpInside];

//    button.backgroundColor = [UIColor redColor];

[button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];

[button setTitle:@"返回调用代理" forState:UIControlStateNormal];

[self.view addSubview:button];

}

-(void)show {

[self.delegate getColor:[UIColor redColor]];

[self.navigationController popToRootViewControllerAnimated:YES];

}

- (void)didReceiveMemoryWarning {

[super didReceiveMemoryWarning];

// Dispose of any resources that can be recreated

}

在一个mainvccongtroller中push过去之后ChilderViewContrller,点击ChilderViewController中的按钮改变根视图的背景颜色:

MainViewController.m

#import "MainViewController.h"

#import "ChilderViewController.h"

@interface MainViewController ()<ChilderViewControllerDlegate>

@end

@implementation MainViewController

- (void)viewDidLoad {

[super viewDidLoad];

// Do any additional setup after loading the view from its nib.

}

- (void)didReceiveMemoryWarning {

[super didReceiveMemoryWarning];

// Dispose of any resources that can be recreated.

}

-(void)getColor:(UIColor *)color{

self.view.backgroundColor = color;

NSLog(@"change color........");

}

- (IBAction)onClick:(id)sender {

ChilderViewController *childerVC = [[ChilderViewController alloc]init];

childerVC.delegate = self;

[self.navigationController pushViewController:childerVC animated:YES];

}

时间: 2024-10-01 07:44:18

IOS之代理(delegate)的开发模式的相关文章

谭八爷微商代理下单系统开发模式

谭八爷代理模式  谭八爷微商代理下单系统开发模式找黄经理:158.1816.6626(电/微)谭八爷系统下单模式管理代理系统开发 一.谭八爷下单系统分红模式介绍: 谭八爷代理条件门槛:只要求每个新代理买168产品试吃,并认可的产品,就可以注册成为代理了. 二.谭八爷微商代理下单系统的优势? 1.0投资.无门槛(这里的零投资就是不交什么代理费这些,首先你要卖产品,你必须要知道产品的特色)2.0囤货.0压钱3.0风险.起步快4.模式好.透明管理5.无差价,代理统一代理价,无中间代理赚差价6.高返利,

第三回《iOS之代理Delegate》

====================================================================== |   转载须注明博客地址:http://www.cnblogs.com/devappnow            | |   请尊重原创.尊重别人的劳动成果.如果读者你觉得有帮助.也可以通过任意的方式给博主鼓励(推荐,评论,邮件等等).    | ======================================================

IOS开发模式——单例

单例的模式在网上有很多,今天发下我个人对单例模式的理解.整个app中只存在一个实例,也只会进行一次实例,在实例完成之后是不可以人释放的(当App关闭之后,等系统自己回收). 也就是说,如果我们写得某个类符合了上述条件,那么我们也可以称这个类为单例. 在非ARC的工程中,我们需要针对alloc,retain,copy等会增加retaincount的参数加以控制,对release和autorelease等减少retailcount的操作增加控制,以确保单一实例,绝不释放. 在ARC的工厂中,由于,内

浅谈一下关于ios开发中一些简单地开发模式

最近公司的工作还比较轻松,自己想去写一些东西,因为本人是做ios开发的,能够希望在这个行业能够结交更多地朋友,下面是本人对一些常用的开发模式,小例子都是去采用的OC语言,希望大家能够提出观点,咱们多多去交流. 下面这个小案例就是简单工厂模式: 简单工厂模式: (1)计算器小例子 ######### // 计算器的类 #import <Foundation/Foundation.h> @interface Calutor : NSObject { float _num1; float _num2

IOS 与ANDROID框架及应用开发模式对比一

IOS 和ANDROID操作系统都是目前流行的移动操作系统,被移动终端和智能设备大量采用,两者都采用了先进的软件技术进行设计,为了方便应用开发两者都采用了先进的设计模式.两者在框架设计上都采用了什么技术?都采用了什么设计模式?两者设计思路和应用开发模式有什么异同呢? 两者都采用了框架模式. IOS 的框架称为Cocoa Touch. 框架提供两个作用,一是类的集合,每个类构建一个问题空间,并提供完整的解决方案和服务:二更重要的是框架中的类相互依赖构成一个整体,制订并实现整个应用程序的结构.框架定

IOS 与ANDROID框架及应用开发模式对照一

IOS 和ANDROID操作系统都是眼下流行的移动操作系统,被移动终端和智能设备大量採用,两者都採用了先进的软件技术进行设计,为了方便应用开发两者都採用了先进的设计模式. 两者在框架设计上都採用了什么技术?都採用了什么设计模式?两者设计思路和应用开发模式有什么异同呢? 两者都採用了框架模式. IOS 的框架称为Cocoa Touch. 框架提供两个作用,一是类的集合,每一个类构建一个问题空间,并提供完整的解决方式和服务.二更重要的是框架中的类相互依赖构成一个总体,制订并实现整个应用程序的结构.框

第二节 Mapper代理开发模式

一:原始的开发dao 实际开发中,我们程序员需要写dao接口和dao的实现类. 1.1 dao接口 1.2 dao实现类 1.3 测试类 总结: 在dao接口实现类方法存在很大大量重复的方法,这样会增加程序员的代码量 调用sqlsession方法时将statement的id硬编码了 比如我根据用户的id查找用户 调用SqlSession调用增删改查的方法时,由于该方法的变量类型使用的泛型,这就在编译阶段,即使类似错误,也不会报错,不利于开发维护 二:mapper代理开发---->相当于一个dao

iOS定位服务与地图开发(4)---显示地图

iOS 6之前,苹果使用的是谷歌地图,iOS 6之后,苹果使用了自己的地图(国内好像用的是高德地图),但是API编程接口与iOS 5相比没有太大变化. iOS 应用程序中使用Map Kit API开发地图应用程序,使用MKMapView类作为地图显示视图,其委托协议是MKMapViewDelegate. 1.显示地图: .h文件中代码 #import <MapKit/MapKit.h> @interface YXCViewController <MKMapViewDelegate>

iOS定位服务与地图开发(1)---获取经纬度

定位服务是通过GPS等方式查找定位自己的位置的,再通过地图标注出来. 在iOS中定位服务和地图开发是使用两套API分别完成的. 1.定位服务: iOS系统提供3种不同定位途径: 1>WiFi定位:通过查询一个WiFi路由器的地理位置信息,iPhone.iPod Touch.iPad都可以采用. 2>蜂窝式移动电话基站定位:通过移动运营商基站定位 3>GPS卫星定位:通过3~4颗GPS卫星位置定位,最为准确,但是耗电量大 iOS不像Android系统在定位服务编程时可以指定采用哪种途径进行