注册 登录
主题 : block传值为空
级别: 侠客
状态: 连续签到 - [15天]
UID: 634128
精华: 0
发帖: 66
可可豆: 363 CB
威望: 327 点
在线时间: 185(时)
注册时间: 2018-02-08
最后登录: 2018-10-19
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
发帖: 636
可可豆: 948 CB
威望: 820 点
在线时间: 973(时)
注册时间: 2015-09-30
最后登录: 2018-10-19
1 楼:  发表于: 2018-02-14 09:03    发自: Web Page
回 楼主(ElvisWee) 的帖子
可以弄个demo看一下吗,具体很多原因都有可能
级别: 侠客
状态: 连续签到 - [15天]
UID: 634128
精华: 0
发帖: 66
可可豆: 363 CB
威望: 327 点
在线时间: 185(时)
注册时间: 2018-02-08
最后登录: 2018-10-19
2 楼:  发表于: 2018-02-14 16:47    发自: Web Page
回 1楼(564282030) 的帖子
已经上传了一个block demo ,麻烦大侠帮我看看。
附件: demo.zip (33 K) 下载次数:8
级别: 侠客
状态: 连续签到 - [2天]
UID: 608808
精华: 0
发帖: 78
可可豆: 120 CB
威望: 112 点
在线时间: 181(时)
注册时间: 2017-03-18
最后登录: 2018-10-19
3 楼:  发表于: 2018-02-16 10:24    发自: Web Page
你将回调写在button的事件中,你觉得会触发吗?
级别: 侠客
状态: 连续签到 - [15天]
UID: 634128
精华: 0
发帖: 66
可可豆: 363 CB
威望: 327 点
在线时间: 185(时)
注册时间: 2018-02-08
最后登录: 2018-10-19
4 楼:  发表于: 2018-02-16 19:16    发自: Web Page
回 3楼(God_Love) 的帖子
我在BView的Button事件中调用block有什么问题吗?block的触发不是说看什么时候block被调用,和写在哪里没关系吗。大佬能不能具体指点一下。
级别: 侠客

状态: 连续签到 - [7天]
UID: 306616
精华: 0
发帖: 105
可可豆: 221 CB
威望: 178 点
在线时间: 1883(时)
注册时间: 2014-04-09
最后登录: 2018-09-30
5 楼:  发表于: 2018-02-22 09:08    发自: Web Page
你的BViewController是alloc init的,并不是你SB里的那个,你BViewController的点击事件是用SB里的拖拽的,根本都不是一个BViewController,怎么可能不是空?
级别: 侠客
状态: 连续签到 - [15天]
UID: 634128
精华: 0
发帖: 66
可可豆: 363 CB
威望: 327 点
在线时间: 185(时)
注册时间: 2018-02-08
最后登录: 2018-10-19
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 点
在线时间: 1883(时)
注册时间: 2014-04-09
最后登录: 2018-09-30
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];才可以把参数传过去。

本站内容均为本站转发,已尽可能注明出处。因未能核实来源或转发内容图片有权利瑕疵的,请及时联系本站,本站会第一时间进行修改或删除。 QQ : 3442093904

描述
快速回复

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

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

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