Я думаю, что это не нормальное поведение Symfony. Вы определили некоторые правила маршрутизации?
Вы также пробовали это:
$this->redirect('module/action?'.http_build_query($paramsArray));
Я предлагаю не использовать пользовательские UITableViewCell
s. Раньше я делал это по-твоему, но есть способ лучше. Используйте свойство accessoryView
для UITableViewCell
, которому можно назначить произвольное представление, например UITextField
или UISwitch
. Он отображается точно так же, как и в приложении «Настройки».
Затем, когда вам нужно получить к нему доступ, просто используйте
NSString *text = ((UITextField *)cell.accessoryView).text;
Однако вы должны быть осторожны с настройкой ячеек и доступом к их значениям. Если какая-либо ячейка выходит за пределы экрана, она будет удалена, и вы не сможете получить доступ к текстовому полю. При настройке ячейки вы хотите сделать следующее:
cell.accessoryView = nil; //Make sure any old accessory view isn't there.
if (/*cell needs text field*/) {
UITextField *textField = [[[UITextField alloc] initWithFrame:frame] autorelease];
textField.text = savedValue;
cell.accessoryView = textField;
[textField addTarget:self action:@selector(textChanged:) forControlEvents:UIControlEventValueChanged];
}
...
- (void) textChanged:(UITextField *)source {
self.savedValue = source.text;
}
Если вы не следуете совету Эда, вам, вероятно, лучше всего сохранить текстовое представление в настраиваемой ячейке и добавить свойство для доступа к представлению.
Вы также можете настроить в своих пользовательских ячейках ссылку на контроллер представления более высокого уровня и отправлять ему уведомления, когда пользователь обновляет в них значения. По сути, скопируйте шаблон делегата, используемый многими объектами библиотеки в UIKit.