2012-09-12 24 views
6

Quiero volver a cargar todas las vistas contenidas en el controlador tabbar (UIViewController). Después de buscar, encontré que tengo que aplicar el método setNeedsDisplay pero no puedo ver dónde debería aplicarlo.Cualquier otra alternativa también se da la bienvenidaCómo recargar UIViewController

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    ..... 
    ..... 

    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease]; 
    [self customToolbar]; 
    [self.window addSubview:tabBarController.view]; 
    [self.window makeKeyAndVisible];  
    return YES; 
} 
-(void)customToolbar 
{ 
    //Declared view controllers and their Navigation Controller 
    ..... 

    //Declared tab bar items 
    .....  

    tabBarController = [[GTabBar alloc] initWithTabViewControllers:viewControllersArray tabItems:tabItemsArray initialTab:1]; 
} 
+0

cuando desea cargar/actualizar sus VCs? – Maulik

+0

Llamo al delegado de la aplicación en otra clase de NSObject donde pongo alguna acción de botón ... cuando se presiona el botón, entonces quiero volver a cargar el –

Respuesta

4

La forma correcta de hacer esto sería añadir cualquier VC que necesita ser refrescado como observador a un determinado nombre de la notificación NSNotificationCenter. Una vez que el VC recibe este mensaje, simplemente llame a un selector que llame al [self setNeedsDisplay].

Para añadir un VC a NSNotificationCenter:

[[NSNotificationCenter defaultCenter] addObserver:self selector: @selector(setNeedsDisplay) name:@"ViewControllerShouldReloadNotification" object:nil]; 

No se olvide de llamar removeObserver:self cuando se cancela la asignación del controlador de vista.

+0

de VC Hola Stavash ... ¿Dónde puedo poner este método? Me refiero a "ViewWillAppear"? Estoy llamando al servicio web view cart cuando cambio tabbar. Estoy usando la clase UIViewController. –

+1

Se llama a ViewWillAppear cada vez que la vista está a punto de mostrarse, esto no solo ocurre cuando cambia entre barras de pestañas, sino también cuando presiona y saca un controlador de la pila de navegación o presenta y descarta una vista modal. Si eso satisface tus necesidades, entonces sí, de lo contrario necesitarás pensar en otra cosa – Stavash