2012-06-03 6 views
0

У меня есть представление tableview и detailview, и я могу передавать данные из моего табличного представления в подробный вид, включив деталь view.h и установив некоторые значения с расстояния с initWithNib.Передача данных iOS nsmutable array

DetailView *detailView = [[DetailView alloc] initWithNibName:@"DetailView" bundle:[NSBundle mainBundle]]; 

//passing data gekozenSpel 

detailView.gekozenSpel = [tableData objectAtIndex:indexPath.row]; 

Но теперь у меня есть таблица данных с несколькими записями и один из затем устанавливается, что: может быть изменен, в DetailView, от 0 до 1 или от 1 до 0, в виде строки. Он отлично работает, но теперь я хочу применить это изменение назад к представлению таблицы, и это не сработает.

myTableView *myTableview = [[myTableView alloc] initWithNibName:@"myTableView" bundle:[NSBundle mainBundle]]; 

[myTableView.theTable replaceObjectAtIndex:location withObject:value]; 

Ибо если вы будете использовать initWithNib путь-оф-делать то создать новую пустую таблицу NSMutableArray. Но я хочу ИЗМЕНИТЬ значение в этом массиве в определенном месте с определенным контентом.

Может быть, синглтон для доступа к данным со всего мира? Я попытался, но мне нужно создать экземпляры того, что я объявляю как значение, а затем он является частным и не общедоступным. Поэтому я не понимаю, как вы применяете синглтон.

Любая помощь будет оценена,

Jan

+0

Регистрация для уведомления, используйте NSNotificationCenter и передать новое значение и место в параметре USERINFO вызова. –

+0

Вызовите метод своего контроллера просмотра и скажите ему, чтобы изменить то, что вы хотите изменить. –

+0

Итак, вы имеете в виду, я пишу метод в tableview для изменения данных по индексу, а затем вызывать этот метод из подробного представления при передаче аргументов index и value? – Pip

ответ

0

Я заменяю в деталях представление свойства (символа) символа сердца (избранное: ДА или НЕТ), затем весь массив помещается поверх массива mother (dataVoorMijnTabel), чтобы обновить его обратно в основную таблицу view (mijnTabelView).

[eigenschappendata2 replaceObjectAtIndex:locatiehartje withObject:eigenschaphartje];

mijnTabelView *mtb = [[mijnTabelView alloc] initWithNibName:@"mijnTabelView" bundle:[NSBundle mainBundle]];

mtb.dataVoorMijnTabel = eigenschappendata2;

0

Вам нужно будет добавить делегата к DetailView, этот делегат будет проходить новый массив к старому мнению, этот массив будет иметь новый tableData что вы replece

Для получения более подробной информации о делегатом, вот некоторые учебники http://www.roostersoftstudios.com/2011/04/12/simple-delegate-tutorial-for-ios-development/ How to use custom delegates in Objective-C

Simple Delegate Example?

+0

Нет необходимости в отдельном делетете - просто добавьте метод в ВК и вызовите его. –

+1

@HotLicks - это правильный способ сделать это? мутация просмотров всегда плохая вещь :) –

+0

Не «всегда» - в этом случае есть определенные отношения родитель-ребенок. И использование делегата по-прежнему «связывает», просто запутывая ссылку. –

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