注册 登录
主题 : block传值为空
级别: 侠客
状态: 连续签到 - [15天]
UID: 634128
精华: 0
发帖: 65
可可豆: 353 CB
威望: 317 点
在线时间: 156(时)
注册时间: 2018-02-08
最后登录: 2018-08-17
0 楼:  发表于: 2018-02-13 23:29    发自: Web Page
来源于 一般提问 分类

block传值为空   

今天用block 反向传值,block显示一直为空,后面用代理传值也是空,(前两天同样的代码都没问题的呀)

if (self.block ==nil)
    {
       NSLog(@"block为空");     //block传值;
    }

或者:
if ((self.delegate && [self.delegate respondsToSelector:@selector(PassValue)]) == nil){
        NSLog(@"代理为空");
    }



请问大佬为什么都是空,问题出在什么地方。
关键词: block
级别: 圣骑士
状态: 连续签到 - [62天]
UID: 510329
精华: 0
发帖: 504
可可豆: 816 CB
威望: 688 点
在线时间: 857(时)
注册时间: 2015-09-30
最后登录: 2018-08-02
1 楼:  发表于: 2018-02-14 09:03    发自: Web Page
回 楼主(ElvisWee) 的帖子
可以弄个demo看一下吗,具体很多原因都有可能
级别: 侠客
状态: 连续签到 - [15天]
UID: 634128
精华: 0
发帖: 65
可可豆: 353 CB
威望: 317 点
在线时间: 156(时)
注册时间: 2018-02-08
最后登录: 2018-08-17
2 楼:  发表于: 2018-02-14 16:47    发自: Web Page
回 1楼(564282030) 的帖子
已经上传了一个block demo ,麻烦大侠帮我看看。
附件: demo.zip (33 K) 下载次数:8
级别: 新手上路
状态: 连续签到 - [1天]
UID: 608808
精华: 0
发帖: 62
可可豆: 78 CB
威望: 73 点
在线时间: 153(时)
注册时间: 2017-03-18
最后登录: 2018-08-17
3 楼:  发表于: 2018-02-16 10:24    发自: Web Page
你将回调写在button的事件中,你觉得会触发吗?
级别: 侠客
状态: 连续签到 - [15天]
UID: 634128
精华: 0
发帖: 65
可可豆: 353 CB
威望: 317 点
在线时间: 156(时)
注册时间: 2018-02-08
最后登录: 2018-08-17
4 楼:  发表于: 2018-02-16 19:16    发自: Web Page
回 3楼(God_Love) 的帖子
我在BView的Button事件中调用block有什么问题吗?block的触发不是说看什么时候block被调用,和写在哪里没关系吗。大佬能不能具体指点一下。
级别: 侠客

状态: 连续签到 - [7天]
UID: 306616
精华: 0
发帖: 105
可可豆: 221 CB
威望: 178 点
在线时间: 1841(时)
注册时间: 2014-04-09
最后登录: 2018-08-17
5 楼:  发表于: 2018-02-22 09:08    发自: Web Page
你的BViewController是alloc init的,并不是你SB里的那个,你BViewController的点击事件是用SB里的拖拽的,根本都不是一个BViewController,怎么可能不是空?
级别: 侠客
状态: 连续签到 - [15天]
UID: 634128
精华: 0
发帖: 65
可可豆: 353 CB
威望: 317 点
在线时间: 156(时)
注册时间: 2018-02-08
最后登录: 2018-08-17
6 楼:  发表于: 2018-02-24 00:20    发自: Web Page
回 5楼(ios从不走火) 的帖子
谢谢指正,根据提醒我后来直接写在场景过渡的方法 -(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender  是可行的,不过还是有一个疑问,我BViewController的对象用 [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"BView"];也是不行的为空,(那么这个用SB方法创建的对象和SB里拖的控件对象的也是不同的吗)?
级别: 侠客

状态: 连续签到 - [7天]
UID: 306616
精华: 0
发帖: 105
可可豆: 221 CB
威望: 178 点
在线时间: 1841(时)
注册时间: 2014-04-09
最后登录: 2018-08-17
7 楼:  发表于: 2018-02-24 11:14    发自: Web Page
回 6楼(ElvisWee) 的帖子
这个和block传值就没关系了,就算你传个NSString类型的参数过去也是null。
在ViewController里,- (IBAction)BtnAction:(id)sender中不写任何代码都能跳转到BViewController中,所以你使用的是UIStoryboardSegue对象进行页面跳转的,需要传参的话,就得用prepareForSegue,或者在- (IBAction)BtnAction:(id)sender中加[self showViewController:BVC sender:nil];才可以把参数传过去。
描述
快速回复

关注本帖(如果有新回复会站内信通知您)

发帖、回帖都会得到可观的积分奖励。查看论坛积分规则

按"Ctrl+Enter"直接提交
    顶部