Pasos simples de variables entre classs en Xcode

Estoy intentando hacer una aplicación de ios pero estoy atrapado en pasar datos entre classs. Esta es mi segunda aplicación. El primero se realizó con una class global, pero ahora necesito múltiples classs. Probé muchos tutoriales, pero no funcionó o el valor pasado fue siempre cero. ¿Alguien puede escribirme una aplicación simple para demostrar el paso de las variables en el IOS 5? Nada especial, storyboard con 2 controlleres de vista, una variable.

Gracias por tu ayuda .

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { // Navigation logic may go here. Create and push another view controller. FirstViewController *fv; fv.value = indexPath.row; NSLog(@"The current %d", fv.value); FirstViewController *detail =[self.storyboard instantiateViewControllerWithIdentifier:@"Detail"]; [self.navigationController pushViewController:detail animated:YES]; } 

aquí está el código de mi vista principal y necesito enviar el indexPath.row o el índice de la celda que presioné a la siguiente vista

Hay varias cosas que hacer. Dependiendo de la aplicación, puede agregar una variable a la class AppDelegate, haciéndola disponible para todas las classs a través de una instancia compartida. Lo más común (creo) es hacer un singleton. Para que eso funcione, puedes hacer una class, digamos StoreVars, y un método estático que devuelve el object, lo que hace que la class sea "global". Dentro del método, inicializa todas sus variables, como siempre lo haría. Entonces siempre puedes llegar a ellos desde cualquier lugar.

 @interface StoreVars : NSObject @property (nonatomic) NSArray * myShanetworkingArray; + (StoreVars*) shanetworkingInstance; @implementation StoreVars @synthesize myShanetworkingArray; + (StoreVars*) shanetworkingInstance { static StoreVars *myInstance = nil; if (myInstance == nil) { myInstance = [[[self class] alloc] init]; myInstance.myShanetworkingArray = [NSArray arrayWithObject:@"Test"]; } return myInstance; } 

Esto hará un singleton. Si restring importar "StoreVars.h" en sus dos viewControllers, puede acceder a la matriz ahora compartida de esta manera;

 [StoreVars shanetworkingInstance].myShanetworkingArray; ^ 

Este es un método que devuelve un object StoreVars. Dentro de la class StoreVars, puede implementar cualquier object e inicializarlo en el método estático. Recuerde siempre inicializarlo, o bien, todo su object será 0 / nil.

Si no eres un fanático del UINavigationController y prefieres utilizar segues, es mucho más fácil, pero puede hacer que tu aplicación sea más "desorderada". Hay un método implementado en UIViewController que deberías sobrecargar:

 - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { // Make sure your segue name in storyboard is the same as this line if ([[segue identifier] isEqualToString:@"YOUR_SEGUE_NAME_HERE"]) { // Get reference to the destination view controller YourViewController *vc = [segue destinationViewController]; // Pass any objects to the view controller here, like... [vc setMyObjectHere:object]; } } 

fuente: cómo pasar prepareForSegue: un object

Investigue antes de hacer preguntas como esta. Lea algunos tutoriales, pruebe usted mismo y luego haga preguntas relacionadas con lo que realmente está buscando. No todos los días la gente quiere hacer todo el trabajo por usted, pero a veces tiene suerte. Como hoy.

Aclamaciones.

si utiliza segue entre 2 controlleres, debe sobrecargar el método prepareToSegue

 -(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { // check if it's the good segue with the identifier if([[segue identifier] isEqualToString:@"blablabla"]) { // permit you to get the destination segue [segue destinationViewController]; // then you can set what you want in your destination controller } } 

El problema que enfrentas es bastante desconcertante para los principiantes. "Resolver" de manera incorrecta puede resultar en aprender una tonelada de malos hábitos.
Por favor, eche un vistazo al excelente tutorial de Ole Begemnn sobre cómo pasar datos entre los controlleres de vista ; realmente vale la pena leerlo.