Как получить доступ к переменной в одном контроллере представления из другого контроллера представления? - PullRequest
1 голос
/ 29 мая 2011

В моем приложении UINavtigationController у меня есть пользователь, выбирающий значение в UITableViewController, и как только это будет сделано, они отправляются обратно в предыдущий UITableViewController, где это значение должно быть показано.Проблема, которую я ожидаю, состоит в том, что как только представление «выталкивается», я предполагаю, что вызывается его viewUnload, который освобождает массив, делая его недоступным в другом контроллере представления.

Есть мысли?

Ответы [ 3 ]

2 голосов
/ 29 мая 2011

Вам нужно передать новое значение предыдущему контроллеру из функции didSelectRowIndex, используя любой из подходов

1 -> Использование NSUserDefault.

Учебник по программированию для iPhone - Сохранение / получение данных с использованием NSUserDefaults

2 -> Использование Делегат concept.

3 -> вы также можете получить доступ к предыдущему ViewController от вас UINavigationController методов.

1 голос
/ 29 мая 2011

Вы можете получить доступ к первому контроллеру вида через self.parentViewController, поэтому было бы лучше синтезировать массив в первом представлении, а затем установить его перед вызовом popViewControllerAnimated: во втором. В основном это будет выглядеть так:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    [self.parentViewController setNewArray:myArray];
    [self.navigationController popViewControllerAnimated:YES];
}

Просто убедитесь, что у вас есть NSArray *newArray; и @property (nonatomic, retain) NSArray *newArray, указанные в заголовочном файле первого представления и синтезированные в файле реализации

0 голосов
/ 29 мая 2011

вы можете использовать NSUserDefaults для достижения того же

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...