//选择房间的代理
@protocol RoomVCDelegate <NSObject>
//方法
-(void)selectRoomName:(NSString *)name;
@property (nonatomic,assign)id<RoomVCDelegate>delegate;
在第一个页面(添加代理方法)
需要设置 代理对象
self.delegate= self;
调用代理方法 把传值对象赋值
-(void)selectRoomName:(NSString *)name{
最后就是把要穿的值(在第二个界面调用 )
[_delegateselectRoomName:@"文化轩"];
@property (nonatomic,copy)void (^backValues)(NSString *str);
在第二个页面定义完后 把值付给block方法
self.backValues(@"大歌星");
在第一个页面 获取到第二个页面的对象 这个时候就只能用self获取 第一个页面的ui控件Vc.backValues=^(NSString *str){
[self.buttonsetTitle:strforState:UIControlStateNormal];
};
使用block是应注意以下几个方面 以下几个例子
__block是用空间的 因为是异步的必须用__block
__blockUIImage *image1 =nil;
//__weak避免循环引用
__weakViewController *weakSelf =self;
dispatch_group_async(group, groupT, ^{
image1 = [weakSelf downloadImage:@"http://a.hiphotos.baidu.com/image/pic/item/8644ebf81a4c510f19c75c136259252dd42aa5bc.jpg"];
});
__blockUIImage *image2 =nil;
__weakViewController *weakSelf2 =self;
dispatch_group_async(group, groupT, ^{
image2 = [weakSelf2 downloadImage:@"http://a.hiphotos.baidu.com/image/pic/item/8644ebf81a4c510f19c75c136259252dd42aa5bc.jpg"];
});
//主线程就不需要用__block
dispatch_group_notify(group,dispatch_get_main_queue(), ^{
_image1.image = image1;
_image2.image = image2;
});
typedef void(^Block) (int,NSString*);
@property (nonatomic,assign)Block block;
这里两个需要连起来使用//添加一个响应者 通知中心 最后一个参数具体对象或者nilnil是这一类对象发生改变就会改变
[[ NSNotificationCenterdefaultCenter]addObserver:selfselector:@selector(textChange:)name:UITextFieldTextDidChangeNotificationobject:textField];}];
object 响应者
5.1在storyboard 建立连线器
5.2在segue设置标识
5.3根据segue找到相应的连线器
在 这个方法中
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
前提是在第二个界面需要订报告以一个全局的model模型
传过去的是一个model模型
if ([segue.identifier isEqualToString:@"one"]) {
menuModel *model = [_rowArray[_currentSection]objectAtIndex:_selectRow];
detailViewController *Vc = segue.destinationViewController;
Vc.model = model;
}else if ([segue.identifier isEqualToString:@"two"]){
menuModel *model = [_rowArray[_currentSection]objectAtIndex:_selectRow];
detailViewController *Vc = segue.destinationViewController;
Vc.model = model;
}
}
直接在第二个界面 用model模型去赋值
原文:http://www.cnblogs.com/jx66/p/5057838.html