Cómo pasar datos entre dos ViewControllers sin usar segues y NaviagationController [cerrado]

Mi problema es cuando instancia un SecondViewController en FirstViewController para asignar un valor en la ID de la variable, el problema es que no puedo usar Segue y NaviagtioController. ¿Tal vez una solución use una variable estática?

Lo hago este código:

// In the class FirstViewController.m
#import "SecondViewController"

NSString *identifier = [NSString stringWithFormat:@"%@", [self.cat objectAtIndex:indexPath.row]];
// Start the code causes an error
ViewControllerOne *instance = [[ViewControllerOne alloc]init];
instance.ID = [[NSString alloc] initWithFormat:@"%@",identifier];
// End code causes error

// In the SecondViewController.h    
@property (nonatomic, retain) NSString *ID;

// In the SecondViewController.m
@synthesize ID;

El error de depuración:

2013-05-03 09:01:42.126 TheFreeApp[19880:c07] * Finalización de la aplicación debido a la excepción no detectada 'NSInvalidArgumentException', razón: 'UICollectionView debe inicializarse con un parámetro de diseño no nulo' * First throw call stack: (0x1cbc012 0x10f9e7e 0x1cbbdeb 0x53d748 0x558b1b 0x558646 0x11eff8 0x11f232 0x5588d5 0xbf5b 0x11ce1e 0xb74e 0xed285 0xed4ed 0xaf75b3 0x1c7b376 0x1c7ae06 0x1c62a82 0x1c61f44 0x1c61e1b 0x1c167e3 0x1c16668 0x3dffc 0x2bcd 0x2af5) libc++abi.dylib: terminate called throwing an exception (lldb)

preguntado el 03 de mayo de 13 a las 08:05

2 Respuestas

Prueba esta

[[NSUserDefaults standardUserDefaults]setValue:yourVal forKey:@"myValue"];
NSString *myVal = [[NSUserDefaults standardUserDefaults]valueForKey:@"myValue"];

Espero haber ayudado

contestado el 03 de mayo de 13 a las 08:05

La causa del error está muy clara en el registro. Terminando la aplicación debido a la excepción no detectada 'NSInvalidArgumentException', motivo: 'UICollectionView debe inicializarse con un parámetro de diseño no nulo'

Su ViewControllerOne es un UICollectionViewController subclase. Debe inicializarse con un parámetro de diseño no nulo.

 UICollectionViewLayout *layout= [UICollectionViewFlowLayout new];
 ViewControllerOne *instance = [[ViewControllerOne alloc]initWithCollectionViewLayout:layout];  

Sin embargo, pasar datos entre el controlador de vista permanece allí.

contestado el 03 de mayo de 13 a las 08:05

Lo dudo mucho, ¿quisiste decir SecondViewController en lugar de ViewControllerOne?? ¿Cómo vas de firstVC a secondVC? - anil varghese

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.