2017-02-09 4 views
0

Я использую JSONModel в своем объектном приложении c. Я получаю все данные в свой JSONModel в первом abBarController. Затем мне нужно получить эти данные в другом viewController. Я пытаюсь отправить эти данные на других viewControllers как:Как использовать данные JSONModel в разных ViewControllers?

Первого ViewController:

@implementation FirstViewController 
... 
SecondViewController* infoController = [self.storyboard instantiateViewControllerWithIdentifier:@"secondViewController"]; 
SecondViewController.model = self.model;//Here send the model with data 
[self.navigationController pushViewController:infoController animated:YES]; 
... 
@end 

Второго ViewController:

@interface SecondViewController :UIViewController{ 
MyModel *model; 
} 

@property MyModel *model; 

Существует лучшая форма, чтобы держать это созданная модель данных и получение данных модели из другого viewController без отправки этого свойства?

+0

Создать общий объект в вашем классе модели и установить объект JSON в идентификатор объекта, то доступ к нему в любом ViewController. –

+0

Использовать singleton для установки или получения данных модели –

ответ

0

Вы можете использовать одноэлементный класс, создать свойство модели. В другом viewController вы можете получить доступ к своей модели через экземпляр singleton. Ссылочная http://www.idev101.com/code/Objective-C/singletons.html

+0

Может быть неэффективным использование singleton в память приложения? – user3745888

+0

Не беспокойтесь о памяти. Они очень маленькие – Dan

0

или вы можете архивировать его к локальным файлам с помощью Plist или данных базовой

1

Создать объект класса

В .h класса объектов

@interface FirstModel : NSObject{ 
} 
@property(nonatomic,strong)NSMutableArray *productsArray; 

В ом объект Класс

-(id)init{ 
    self=[super init]; 
    if (self) { 

     _productsArray=[[NSMutableArray alloc]init]; 

    } 
    return self; 
} 

Создайте еще один объект класса

@interface SecondModel : NSObject 
@property (nullable,nonatomic, retain) NSString *name; 
@end 

В TableviewViewcontroller .h файле Импорт Два класса Object и вставьте следующее кодирование

@property(nonatomic,strong)FirstModel *firstListObject; 

В .m файл // ячейки для rowAt Индексный путь

SecondModel *prodObj=_firstListObject.productsArray[indexPath.item]; 
cell.productNameLabel.text=prodObj.name; 

Вы можете иметь доступ этот объект класса, где вам нужно ...

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