首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XLForm formRowDescriptorValueHasChanged不工作

XLForm formRowDescriptorValueHasChanged不工作
EN

Stack Overflow用户
提问于 2014-09-09 07:46:15
回答 2查看 584关注 0票数 0

我使用的是XLForm和Objective(不是Swift)。

不管我的条件是什么,我都不能触发formRowDescriptorValueHasChanged:。我将代码放在我的.m文件中。为什么我不能让它开始工作?

我准确地复制了示例代码,并根据需要对其进行了修改。然而,无论我如何尝试,都不会被调用。我在viewDidLoad中创建表单重要吗?请给我建议。

提前感谢所有的专业人士!

下面是示例代码:

代码语言:javascript
复制
-(void)formRowDescriptorValueHasChanged:(XLFormRowDescriptor *)rowDescriptor oldValue:(id)oldValue newValue:(id)newValue
{
[super formRowDescriptorValueHasChanged:rowDescriptor oldValue:oldValue newValue:newValue]; 
if ([rowDescriptor.tag isEqualToString:@"alert"]){
    if ([[rowDescriptor.value valueData] isEqualToNumber:@(0)] == NO && [[oldValue valueData] isEqualToNumber:@(0)]){
        XLFormRowDescriptor * newRow = [rowDescriptor copy];
        [newRow setTag:@"secondAlert"];
        newRow.title = @"Second Alert";
        [self.form addFormRow:newRow afterRow:rowDescriptor];
    }
    else if ([[oldValue valueData] isEqualToNumber:@(0)] == NO && [[newValue valueData] isEqualToNumber:@(0)]){
        [self.form removeFormRowWithTag:@"secondAlert"];
    }
}
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-10 02:21:02

我想我对所有这些还太陌生了,但是这里和那里的一些尝试和错误解决了这个问题。我相信,由于我在viewDidLoad中完成了表单,所以需要设置self.form.delegate = self;

现在一切都好了。谢谢你的努力@Shams Ahmed

票数 2
EN

Stack Overflow用户

发布于 2014-09-09 22:23:28

我假设您还没有使视图控制器成为XLFormViewController的子类。如果您这样做了,XLFormDescriptor委托就会为您设置。

如果不使用该方法,请确保XLFormDescriptor对象已将其委托设置为视图控制器。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25739231

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档