代理

代理

代理:又叫委托 自己不能去办的事,委托给别人去办

UIAlertViewUITextField都是用了代理

 

一、写代理的步骤:

1、需要帮忙的人

1)声明代理里面的协议方法(@protocol

2)声明协议的属性

3)什么时候需要触发这个代理方法

4)通过协议的属性调用代理方法(委托)

 

2、帮忙的人做的事

 5)导入协议

 6)在初始化有代理方法的对象的地方(答应帮忙)

 7)写上代理方法,等待被执行(具体帮忙的内容)


二、具体实现:

1、声明代理方法

@protocol NextDelegate <NSObject>

//是否强制执行

//@optional

- (void)toLoginWithName:(NSString *)name;

@end

注:不要在@interface里面声明代理方法


2、声明代理的属性(可以通过这个属性找到代理方法)

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

注:

1)声明代理的属性用assign 分配到栈里面

2)id<代理名> :代理的类型


3、什么时候需要触发这个代理方法

- (void)toRigether {

//    点击注册 注册成功的时候 触发代理方

[self.navigationController popToRootViewControllerAnimated:YES];

    

4、通过协议的属性调用代理方法(委托)

[self.delegate toLoginWithName:@"小明"];

}


5、导入协议

@interface ViewController () <NextDelegate, UIActionSheetDelegate>


6、在初始化有代理方法的对象的地方(答应帮忙)

next.delegate = self;

    

7、写上代理方法,等待被执行(具体帮忙的内容)

- (void)toLoginWithName:(NSString *)name {

    NSLog(@"%@登陆成功", name);   

}


三、补充小知识

1、UIActionSheet

UIActionSheet弹出框选择按钮

具体实现:

UIActionSheet *actionSheet = [[UIActionSheet alloc]initWithTitle:@"选择商品" delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:@"此商品已售完" otherButtonTitles:@"最新商品", nil];    

[actionSheet showInView:self.view];

    

2、等待视图

具体实现:   

indicatorView = [[UIActivityIndicatorView alloc]initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];

indicatorView.color = [UIColor purpleColor];


//    设置等待视图的中心点

indicatorView.center = self.view.center;


[indicatorView startAnimating];

[self.view addSubview:indicatorView];


3、设置用户配置信息(用户状态)保存到本地 NSUserDefaults

1)初始化

NSUserDefaults *userDefaults1 = [NSUserDefaults standardUserDefaults];

    

2)添加字符串

[userDefaults1 setObject:@"..." forKey:@“dian"];


3)添加数字  

[userDefaults1 setInteger:10 forKey:@"age"];


4)防止退出运用程序之后数据消失

[userDefaults1 synchronize];


5)取值(key值必须一致)

NSString *dian = [userDefaults1 objectForKey:@"dian"];

NSInteger age = [userDefaults1 integerForKey:@"age"];


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值