2017-02-09 4 views
0

Ich verwende JSONModel in meiner objektiven c-Anwendung. Ich bekomme alle Daten zu meinem JSONModel in einem ersten abBarController. Dann brauche ich diese Daten in anderen ViewController. Ich versuche, diese Daten an die anderen Viewcontrollers senden wie:Wie können JSONModel-Daten in verschiedenen ViewControllern verwendet werden?

Erste 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 

Second Viewcontroller:

@interface SecondViewController :UIViewController{ 
MyModel *model; 
} 

@property MyModel *model; 

Es gibt eine bessere Form, dies zu halten Datenmodell instanziiert und erhalten Sie die Modelldaten von einem anderen ViewController ohne dies in einer Eigenschaft zu senden?

+0

Objekt in der Modellklasse geteilt Erstellen und JSON-Objekt in ID-Objekt festgelegt dann Zugriff auf jeden Viewcontroller. –

+0

Verwenden Sie ein Singleton, um Modelldaten zu setzen oder zu erhalten –

Antwort

0

Sie können eine Singleton-Klasse verwenden, um Ihre Modelleigenschaft zu erstellen. In einem anderen ViewController können Sie über eine Instanz von Singleton auf Ihr Modell zugreifen. Referenz http://www.idev101.com/code/Objective-C/singletons.html

+0

Könnte ineffizient Singleton zum Speichern der Anwendung sein? – user3745888

+0

Mach dir keine Gedanken über Speicher. Sie sind sehr klein – Dan

0

oder Sie können es auf die lokalen Dateien zu archivieren mit plist oder DV-

1

Objektklasse erstellen

In .h Objektklasse

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

In .m Objekt Klasse

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

     _productsArray=[[NSMutableArray alloc]init]; 

    } 
    return self; 
} 

Erstellen Sie eine andere eine Objektklasse

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

In TableviewViewcontroller .h-Datei Import Zwei Objektklasse und fügen Sie die folgende Codierung

@property(nonatomic,strong)FirstModel *firstListObject; 

In .m-Datei // Zelle für ZeileAt Indexpfad

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

Sie Zugriff auf dieses Objekt haben Klasse, wo immer Sie benötigen ...

Verwandte Themen