代理:又叫委托 自己不能去办的事委托给别人去办
之前学过的 UIAlertView UITextField都是使用了代理
反向传值代理 代理Block
写代理的步骤
需要帮忙的人(请求帮代饭的人)
1.声明代理里面的的协议方法(
@protocol)
2.声明协议的属性
3.什么时候需要触发这个代理方法
4.通过协议的属性 调用代理方法(委托)
帮忙的人做的事(帮忙带饭的人)
5.导入协议
6.在初始化有代理方法的地方,挂上代理(答应帮带饭)
7.写上代理方法 等待被执行
1.申明代理方法(不要在@Interface里面声明代理方法)
@protocol NextDelegate <NSObject>
-(void)toLoginWithName:(NSString *)name;
@end
2.声明代理的属性(可以通过属性找到代理方法)在@Interface里面声明
@property(nonatomic,assign)id<NextDelegate>delegate;
声明代理的属性用assign分配到栈里面
id<NextDelegate>delegate代理的类型 <代理的名字>
@property(nonatomic,copy)NSString *titleName;
3.什么时候需要触发这个代理方法
-(void)toRigether{
点击注册成功之后触发代理方法
4. 通过协议的属性调用这个代理方法(委托)
[self.delegate toLoginWithName:@"葫芦娃"];
[self.navigationController popToRootViewControllerAnimated:YES];
}
5.导入协议
@interface ViewController () <NextDelegate,UIActionSheetDelegate>
@end
6.挂上代理
next.delegate = self;
7.写上代理方法 等待被执行(帮买饭的人的动作)
-(void)toLoginWithName:(NSString *)name{
NSLog(@"%@ 登录成功",name);
}
2. 等待视图
indicator =[[UIActivityIndicatorView alloc]initWithActivityIndicatorStyle: UIActivityIndicatorViewStyleWhiteLarge];
indicator.color = [UIColor redColor
];
indicator.center = self.view.center;
[indicator startAnimating];
[self.view addSubview:indicator];
/3.弹出框 选择按钮
UIActionSheet * acttionSheet = [[UIActionSheet alloc]initWithTitle:
@"选择