У меня есть контроллер вида A (VCA) и View B (VCB). VCA извлекает данные из вызова API и заполняет метки и т. Д. Возвращаемыми данными.Передача данных с одного контроллера вида на другой без перехода
Когда эти данные будут получены, я хочу передать часть этого файла в VCB без перехода на VCB. Когда пришло время «идти» в VCB, я хочу, чтобы данные уже были там.
В настоящее время у меня есть два контроллера вида, связанных посредством представления и представления модальных представлений. Это прекрасно работает, когда я представляю VCB, я отправляю данные VCA. Однако, с точки зрения UI/UX, я переключаюсь на раздвижную панель. Итак, вы начинаете с VCA, а затем можете прокручивать влево, чтобы сместить в VCB справа.
Из-за скольжения вы можете видеть оба контроллера представления одновременно, поэтому я хочу, чтобы VCB уже был визуально.
Мой текущий код в СВУ называется на DoubleTap жест распознаватель:
- (void)showDetailView
{
// Initialize VCB
ViewContollerB *vcb = [[ViewContollerB alloc] init];
// ················································
// Pass data to ViewContollerB
// ················································
vcb.currently = currently;
vcb.hourly = hourly;
vcb.daily = daily;
vcb.unitTemp = unitTemp;
vcb.currentLocationCity = currentLocationCity;
vcb.currentLocationRegion = currentLocationRegion;
vcb.currentTemp = currentTemp;
// Set transition style to cross fade
vcb.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
// Present the daily details
[self presentViewController:vcb animated:YES completion:nil];
}
Как я уже говорил, это работает отлично.
На приемном конце (VCB), у меня есть такие вещи, как это в - (void)viewWillAppear:(BOOL)animated
if (currentTemp) {
// Displays data from passed variables
[self displayHeaderInfo];
}
То, что я хотел бы сделать, по существу, это в СВУ:
// PRETEND DATA RETURNED FROM API CALL IN VCA
if (currentTemp) {
// Set array for VCB
vcb.currentTemp = currentTemp;
**** CODE TO SEND THIS TO VCB ****
**** BUT NOT GO TO VCB, STAY ****
**** RIGHT HERE IN VCA. ****
// Display in VCA
[self displayCurrentTemp];
}
Возможно ли это?
Почему бы просто не удалить строку '[self presentViewController: vcb animated: YES complete: nil];'? – Snowman
Эта строка: vcb.currentTemp = currentTemp; показывает, что вы уже знаете, как передавать данные в vcb. Так что ваш вопрос не совсем ясен ... – user523234
Да, я могу это передать. Но мне нужно, чтобы данные проходили молча, когда они были готовы, а не на каком-либо пользовательском взаимодействии или событии. Имеет ли это смысл? Похоже, что ответ ниже - это путь. Я собираюсь попробовать это и отчитаться. –