Как получить доступ к уровням NSDictionary 2 в стеке? - PullRequest
0 голосов
/ 24 января 2012

(iOS) У меня UITableView в качестве корневого представления (экран 1).когда ячейка выбрана, она выдвигает новый UIView (экран 2), который содержит две кнопки.Когда нажата одна из этих кнопок, нажимается новый UIView (экран 3).Я хотел бы передать некоторые пары ключ-значение с экрана 1 на экран 2 и на экран 3. Используя следующий код, я могу без проблем передать значения на экран 2, но экран 3 возвращает ноль в качестве значения, независимо от того, какая ячейка являетсявыбрал.Любая помощь в том, почему это происходит, была бы отличной(Альтернативой является использование переключателей на экране 2 для передачи значений на экран 3)

Экран 1:

NSIndexPath *indexPath = [self.tableView indexPathForCell:sender];
NSDictionary *sentItems = [NSDictionary dictionaryWithObjectsAndKeys:indexPath, @"indexPath", nil];
[destination setValue:sentItems forKey:@"sentItems"];

1 Ответ

1 голос
/ 24 января 2012

Решение, которое я считаю наиболее простым, - это передать sentItems или подобный словарь со всеми значениями, которые могут вам понадобиться при инициализации второго и третьего представлений.

Так что, если вам нужны значения X,Y для вида 2 и A,B,C для вида 3 или D,E,F для альтернативного вида кнопки 3, перед тем как отобразить его, передайте словарь с X,Y,A,B,C,D,E,F, определенным для вида 2, затем передайте соответствующие значения для вида 3 при выборе одногокнопок, но перед тем, как показать это представление.

Это вообще не дает оглядываться назад в стеке.Если ваше первое представление на самом деле является корневым представлением приложения, у вас также есть возможность определить этот словарь в классе делегата приложения, чтобы он стал глобально доступным через [[UIApplication sharedApplication] delegate].

...