Pasar datos entre controladores de vista al inicio

Tengo una aplicación de menú lateral.

Tengo 2 ViewController's RearViewController y FrontViewController.

In RearViewController Tengo un tableView y quiero tan pronto como comience la aplicación FrontViewController para cargar el primer elemento de esta tabla.

He intentado agregar

frontViewController.category = [rearViewController.fetchedResultsController objectAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]];

in AppDelegate, pero todo lo que obtiene es un objeto nulo. Gracias.

preguntado el 31 de julio de 12 a las 13:07

Está llegando a cero en appDelegate ya que no tenía valor en AppDelegate... ¡sus objetos no tendrán valor hasta el momento en que se llame al método que los contiene! -

Qué quieres..... ??? quieres obtener variable hacia atrás ???? Como es posible ? -

2 Respuestas

Los datos no se enviarán de un controlador de vista a otro de esta manera... Tienes que empujarlo... Usa pushViewController en el RearViewController escribir...

[self.navigationController pushViewController:FirstViewController animated:YES];

Respondido 31 Jul 12, 13:07

no lo entiendo Mi controlador raíz es FrontViewController, y no pude entender lo que quieres decir. - Devfly

enter image description here

Yo uso el protocolo en este caso.

@protocol CommonDataSource
- (TheType *)dataSource;
@end


@interface AppDelegate : NSObject <UIAppDelegate, CommonDataSource>
@end

@implementation AppDelegate
- (TheType *)dataSource
{
   ...
}
@end


@interface TheAViewController : UIViewController
@property (...) id<CommonDataSource> commonDataSource;
@end

@interface TheBViewController : UIViewController
@property (...) id<CommonDataSource> commonDataSource;
@end


- (IBAction)theActionA:(id)sender
{
   TheAViewController *aaa = ...;
   a.commonDataSource = (AppDelegate*)...;
}


- (IBAction)theActionB:(id)sender
{
   TheAViewController *aaa = ...;
   a.commonDataSource = (AppDelegate*)...;
}

¡Buena suerte!

Respondido 31 Jul 12, 14:07

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