2014-09-09 2 views
0

Я использую XLForm и Objective-C (не Swift).XLForm formRowDescriptorValueHasChanged не работает

Я не могу вызвать 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"]; 
    } 
} 
} 

ответ

2

Я предполагаю, что я все еще слишком новичок во всех этих случаях, но несколько проб и ошибок здесь и там решили. Я считаю, что, поскольку я сделал форму в viewDidLoad, необходимо установить self.form.delegate = self;

Все хорошо. Спасибо за попытку @Shams Ahmed

1

Am если вы не сделали ваш взгляд контроллер подкласс XLFormViewController. если бы вы сделали XLFormDescriptor, делегат был бы настроен для вас.

Если вы не используете этот подход, убедитесь, что ваш объект XLFormDescriptor установил свой делегат в контроллер вашего вида.

+0

Я уже подклассифицировал контроллер своего представления правильно. Я могу вызвать другие методы, такие как 'didSelectFormRow:' хотя .. – SilverHood

Смежные вопросы