récupérer la valeur d'une variable d'une vue à une autre
KRM
Membre
Bonjour depuis la vue ViewControllerScan, je scan et affiche le chiffre rendu par le QR-code.Depuis la vue ViewControllerData, j'accède à une URL.
Je souhaite récupérer le chiffre scanner de la 1ère vue et de le passer dans l'url de la 2ème vue. J'ai essayé de faire des méthodes get mais sans résultat... est-ce que quelqu'un peut m'aider?! Voici mon code...
Je souhaite récupérer le chiffre scanner de la 1ère vue et de le passer dans l'url de la 2ème vue. J'ai essayé de faire des méthodes get mais sans résultat... est-ce que quelqu'un peut m'aider?! Voici mon code...
<br />
#import "ViewControllerScan.h"<br />
@interface ViewControllerScan ()<br />
@end<br />
@implementation ViewControllerScan<br />
@synthesize resultImage, resultText;<br />
<br />
- (IBAction) scanButtonTapped<br />
{<br />
<br />
// ADD: present a barcode reader that scans from the camera feed<br />
ZBarReaderViewController *reader = [ZBarReaderViewController new];<br />
reader.readerDelegate = self;<br />
reader.supportedOrientationsMask = ZBarOrientationMaskAll;<br />
<br />
ZBarImageScanner *scanner = reader.scanner;<br />
// TODO: (optional) additional reader configuration here<br />
<br />
<br />
[scanner setSymbology: ZBAR_QRCODE<br />
config: ZBAR_CFG_X_DENSITY<br />
to: 2];<br />
<br />
[scanner setSymbology:ZBAR_QRCODE<br />
config:ZBAR_CFG_Y_DENSITY<br />
to:2];<br />
<br />
reader.readerView.zoom = 1;<br />
<br />
reader.scanCrop= CGRectMake(0, 0, 1, 1);<br />
<br />
// present and release the controller<br />
[self presentModalViewController: reader<br />
animated: YES];<br />
<br />
NSLog(@"je suis là ");<br />
}<br />
- (void) imagePickerController: (UIImagePickerController*) reader didFinishPickingMediaWithInfo: (NSDictionary*) info<br />
{<br />
<br />
id <NSFastEnumeration> results =<br />
[info objectForKey: ZBarReaderControllerResults];<br />
assert(results);<br />
<br />
UIImage *image = [info objectForKey: UIImagePickerControllerOriginalImage];<br />
assert(image);<br />
if(image)<br />
resultImage.image = image;<br />
<br />
ZBarSymbol *symbol = nil;<br />
for(symbol in results){<br />
resultText.text = symbol.data;<br />
break;<br />
}<br />
<br />
NSString* resultat = resultText.text;<br />
<br />
<br />
NSLog(@"data=%@\n", symbol.data);<br />
NSLog(@"TEXTE = %@", resultText.text);<br />
<br />
NSLog(@"ESSAI = %@", resultat);<br />
<br />
// ADD: dismiss the controller (NB dismiss from the *reader*!)<br />
[reader dismissModalViewControllerAnimated: YES];<br />
}<br />
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil<br />
{<br />
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];<br />
if (self) {<br />
// Custom initialization<br />
}<br />
return self;<br />
}<br />
- (void)viewDidLoad<br />
{<br />
[super viewDidLoad];<br />
// Do any additional setup after loading the view.<br />
}<br />
- (void)viewDidUnload<br />
{<br />
[super viewDidUnload];<br />
// Release any retained subviews of the main view.<br />
}<br />
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation<br />
{<br />
return (interfaceOrientation == UIInterfaceOrientationPortrait);<br />
}<br />
@end<br />
<br />
#import "ViewControllerData.h"<br />
#import "ViewControllerDataDetail.h"<br />
#import "Data.h"<br />
@interface ViewControllerData ()<br />
@end<br />
@implementation ViewControllerData<br />
- (void)loadTimeline {<br />
// Charger le modèle via RestKit<br />
RKObjectManager* objectManager = [RKObjectManager sharedManager];<br />
objectManager.client.baseURL = [RKURL URLWithString: @"http://localhost:8080/CulturalNetworksMuseumServer/resources"];<br />
[objectManager loadObjectsAtResourcePath:@"/compositecards/1/artifactcards" delegate:self];<br />
}<br />
- (void)viewDidLoad<br />
{<br />
[super viewDidLoad];<br />
<br />
RKLogConfigureByName("RestKit/Network*", RKLogLevelTrace);<br />
RKLogConfigureByName("RestKit/ObjectMapping", RKLogLevelTrace);<br />
<br />
// Initialisation de RestKit<br />
RKObjectManager* objectManager = [RKObjectManager managerWithBaseURLString:@"http://localhost:8080/CulturalNetworksMuseumServer/resources"];<br />
<br />
// Active la gestion automatique de l'indicateur de l'activité réseau<br />
objectManager.client.requestQueue.showsNetworkActivityIndicatorWhenBusy = YES;<br />
<br />
//Configuration du mappage de l'objet Data<br />
RKObjectMapping * dataMapping = [RKObjectMapping mappingForClass:[Data class]];<br />
[dataMapping mapKeyPath:@"id" toAttribute:@"ac_id"];<br />
[dataMapping mapKeyPath:@"file" toAttribute:@"ac_file"];<br />
[dataMapping mapKeyPath:@"typefile" toAttribute:@"ac_typefile"];<br />
[dataMapping mapKeyPath:@"author" toAttribute:@"ac_author"];<br />
[dataMapping mapKeyPath:@"titleTopic" toAttribute:@"ac_titleTopic"];<br />
[dataMapping mapKeyPath:@"year" toAttribute:@"ac_year"];<br />
[dataMapping mapKeyPath:@"technical" toAttribute:@"ac_technical"];<br />
[dataMapping mapKeyPath:@"supportMedia" toAttribute:@"ac_supportMedia"];<br />
[dataMapping mapKeyPath:@"format" toAttribute:@"ac_format"];<br />
[dataMapping mapKeyPath:@"owner" toAttribute:@"ac_owner"];<br />
[dataMapping mapKeyPath:@"collection" toAttribute:@"ac_collection"];<br />
[dataMapping mapKeyPath:@"remarks" toAttribute:@"ac_descritpionRemarks"];<br />
<br />
<br />
// Permet de mapper l'objet Data avec la source de ce dernier<br />
[objectManager.mappingProvider setObjectMapping:dataMapping forResourcePathPattern:@"/compositecards/1/artifactcards"];<br />
<br />
NSString * test = @"Mappage dans la View Controller";<br />
NSLog(@"%@",test);<br />
<br />
<br />
// mise en place d'une TableView<br />
_tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 320, 480-64) style:UITableViewStylePlain];<br />
_tableView.dataSource = self;<br />
_tableView.delegate = self;<br />
_tableView.backgroundColor = [UIColor clearColor];<br />
_tableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine;<br />
[self.view addSubview:_tableView];<br />
<br />
// appel de la fonction qui charge le modèle<br />
[self loadTimeline];<br />
<br />
<br />
}<br />
#pragma mark RKObjectLoaderDelegate methods<br />
- (void)request:(RKRequest *)request didLoadResponse:(RKResponse *)response<br />
{<br />
NSLog(@"Loaded payload: %@", [response bodyAsString]);<br />
} <br />
/**<br />
** Permet de charger la liste des adresses provenant des services Rest sous forme de tableau<br />
** Remplir le tableau _data (local) avec le tableau d'objects<br />
** Mettre à jour la TableView<br />
**/<br />
- (void)objectLoader:(RKObjectLoader*)objectLoader didLoadObjects:(NSArray*)objects {<br />
NSLog(@"Load collection of ArtifactCards: %@", objects);<br />
_data = [NSArray arrayWithArray:objects];<br />
[_tableView reloadData];<br />
}<br />
- (void)objectLoader:(RKObjectLoader*)objectLoader didFailWithError:(NSError*)error {<br />
UIAlertView* alert = [[UIAlertView alloc] initWithTitle:@"Error" message:[error localizedDescription] delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];<br />
[alert show];<br />
NSLog(@"Hit error: %@", error);<br />
}<br />
#pragma mark UITableViewDataSource methods<br />
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {<br />
return 1;<br />
}<br />
- (NSInteger)tableView:(UITableView *)table numberOfRowsInSection:(NSInteger)section {<br />
return [_data count];<br />
}<br />
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {<br />
NSString* reuseIdentifier = @"Artifact Cell";<br />
UITableViewCell* cell = [_tableView dequeueReusableCellWithIdentifier:reuseIdentifier];<br />
if (nil == cell) {<br />
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:reuseIdentifier];<br />
cell.textLabel.numberOfLines = 0;<br />
cell.textLabel.backgroundColor = [UIColor clearColor];<br />
}<br />
Data *data = [_data objectAtIndex:indexPath.row];<br />
<br />
//[cell.textLabel setText:[NSString stringWithFormat:@"%@ %@", address.ad_lat, address.ad_lon]];<br />
[cell.textLabel setText:[NSString stringWithFormat:@"%@", data.ac_titleTopic]];<br />
[cell.detailTextLabel setText:[NSString stringWithFormat:@"%@", data.ac_author]];<br />
// [cell.detailTextLabel setText:[NSString stringURL:@"%@", data.ac_file]];<br />
// NSString *stringURL = @"%@", data.ac_file;<br />
// NSURL *url = [NSURL URLWithString:stringURL];<br />
// [[UIApplication sharedApplication] openURL:url];<br />
<br />
<br />
return cell;<br />
<br />
}<br />
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {<br />
NSURL *uneImage = [NSURL URLWithString:@"http://localhost/CulturalNetworksMuseumClient/upload/50190d84bf34aCN.png"];<br />
<br />
<br />
<br />
UIImageView * monImage = [[UIImageView alloc] initWithFrame: CGRectMake(20, 20, 260, 300)];<br />
//UIImage *logoImage = [UIImage imageNamed:@"Audio.png"];<br />
UIImage *logoImage = [UIImage imageWithData: [NSData dataWithContentsOfURL:uneImage]];<br />
monImage.image = logoImage;<br />
<br />
<br />
[monImage setBackgroundColor: [UIColor lightGrayColor]];<br />
<br />
[self.view addSubview:monImage];<br />
<br />
// UIView * red = [[UIView alloc] initWithFrame:CGRectMake(10, 10, 300, 300)];<br />
// [red setBackgroundColor:[UIColor lighGrayColor]];<br />
// [self.view addSubview:red];<br />
<br />
// ViewControllerDataDetail *detail = [ViewControllerDataDetail alloc];<br />
// <br />
// <br />
// UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"Error" message:@"BRavo" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];<br />
// [alert show];<br />
// <br />
// <br />
// //verifier si il y a animated:YES cela permet de rajouter un effet glissant<br />
// [self.navigationController pushViewController: detail animated:YES];<br />
}<br />
<br />
- (void)viewDidUnload<br />
{<br />
[super viewDidUnload];<br />
}<br />
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation<br />
{<br />
return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);<br />
}<br />
<br />
@end<br />
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Il te suffit d'avoir une propriété, dans ViewControllerData, appropriée à la donnée que tu véhicule et que tu mets à jour depuis ton premier view controller avant de faire ton push.
En revanche, si ViewControllerScan affiche ViewControllerData alors, ViewControllerData doit définir une propriété qui sera utilisée par ViewControllerScan pour passer la valeur dans ce sens.