Я пытаюсь настроить проект, который динамически создает ViewControllers, основанный на файле JSON. Я задал вопрос на днях о том, как создать это здесьxCode передавать данные между динамически создаваемыми ViewControllers
xCode Dynamically create ViewControllers
Так что я был в состоянии создать ViewControllers динамически и после того, как играл с ним больше, я был довольно легко настроить его так, когда приложение загружается, оно генерирует, как много количество ViewControllers указано в JSON. Я также могу легко перемещаться между ними, а также каждый экран настраивал кнопки, виды и т. Д. Из JSON. Я делаю это просто, делая
NSDictionary *MainJSON = [sJson JSONValue];
NSArray *theArray = [MainJSON valueForKey:@"viewControllers"];
Затем пройдите через массив, создающий экземпляр ViewController.
Моя проблема заключается в том, что я хочу иметь возможность передавать данные между ViewControllers. Скажем, например, я установил его в JSON, поэтому первый ViewController имеет текстовое поле. Пользователь вводит некоторые данные, и я хочу, чтобы их можно было настроить, поэтому, когда они переходят к следующему экрану, эти данные переносятся на следующий экран. Я в настоящее время переключения экранов, как этот
-(void)nextScreen
{
for(int i = 0; i < [vcArray count]; i++)
{
int iID = i+1;
if([self.navigationController.viewControllers count] == iID)
{
ViewController *theVC = [vcArray objectAtIndex:i];
[self.navigationController pushViewController:theVC animated:YES];
break;
}
}
}
Теперь обычно каждый ViewController будет иметь класс, так что в ViewController Я толкаю я могу сделать свойство и синтезировать NSString в этом классе, поэтому при передаче данных к следующему ViewController, Я бы просто сделал это.
vc.theString = textField.text
Но как я динамически генерировать эти ViewControllers, я не могу сделать это, как я только использую один .h и .m файл и каждый ViewController я генерировать использует один и тот же файл XIB. У кого-нибудь есть идеи о том, как я мог бы передавать данные в этой настройке?
Uhm ... Я не понимаю, факт, что у вас есть только один контроллер View, должно облегчить ситуацию. Вы также можете сохранить в своем приложении iOS все возможные xib и создать экземпляр контроллера представлений с определенным, возможно, добавив свойство строки «xib name» в JSON. Имейте в виду, что UIView (ярлык и т. Д.) Также можно вызвать с номером тега, вы также можете сохранить его в JSON. – Leonardo
Да, играла с ним последние полчаса, и понял, что это можно легко достичь с помощью JSON. В основном я либо использую метод тега, как вы сказали, либо я могу дать каждому ярлыку/текстовому полю в каждом viewController идентификатор, который я могу использовать для их подключения. У меня есть все созданные объекты, хранящиеся в массивах diff, поэтому они могут проверять, какие идентификаторы совпадают, и установить информацию таким образом. Думаю, я должен был поиграть с ним немного больше, прежде чем спрашивать. Слишком рано утром: P – AdamM
Если вы вставляете свой комментарий в качестве ответа, я могу отметить его как принятый! – AdamM