我使用的是XLForm和Objective(不是Swift)。
不管我的条件是什么,我都不能触发formRowDescriptorValueHasChanged:。我将代码放在我的.m文件中。为什么我不能让它开始工作?
我准确地复制了示例代码,并根据需要对其进行了修改。然而,无论我如何尝试,都不会被调用。我在viewDidLoad中创建表单重要吗?请给我建议。
提前感谢所有的专业人士!
下面是示例代码:
-(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"];
}
}
}发布于 2014-09-10 02:21:02
我想我对所有这些还太陌生了,但是这里和那里的一些尝试和错误解决了这个问题。我相信,由于我在viewDidLoad中完成了表单,所以需要设置self.form.delegate = self;。
现在一切都好了。谢谢你的努力@Shams Ahmed
发布于 2014-09-09 22:23:28
我假设您还没有使视图控制器成为XLFormViewController的子类。如果您这样做了,XLFormDescriptor委托就会为您设置。
如果不使用该方法,请确保XLFormDescriptor对象已将其委托设置为视图控制器。
https://stackoverflow.com/questions/25739231
复制相似问题