2012-11-20 17 views
5

Sono nuovo nello sviluppo di iPhone. Sto sviluppando un'applicazione TabBarViewcontroller (iPhone e iPad) e ho creato uno LoginViewController e un'azione pulsante. La mia aspettativa è dopo aver fatto clic su quel pulsante, il controllo passerà da LoginViewController a TabBarViewController. In questo TabBarViewcontroller ho 5 controlli Tabbar (elementi) ViewControllers. È possibile?Come connettere Azione pulsante a Tabbar Viewcontrollers

Se possibile, condividi le tue idee.

risposta

7

Prima di tutto, prendere UINavigationController e UITabbarController nel vostro MainWindow.xib e si legano a IBOutlet rispettivi campi .. ans impostati LoginViewController come RootViewController della vostra UINavigationController ..

Quindi nel metodo didFinishLaunchingWithOptions scrivere questo ..

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    [self.window setRootViewController:navController]; 
    [self.window makeKeyAndVisible];  
    return YES; 
} 

Creare ora un altro metodo in AppDelegate.m come questo ..

-(void)loadApplication 
{ 
    [navController pushViewController:tabbarController animated:NO]; 
} 

Sulla vostra azione pulsante Login .. chiamare questo metodo come segue ..

-(IBAction)btnLoginTapped:(id)sender 
{ 
    AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication]delegate]; 
    [appDelegate loadApplication]; 
} 
+0

sta funzionando .. tnx per la tua idea –

5

Così nel pulsante di azione Prova a seguire i codici

AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate]; 
appDelegate.window.rootViewController = tabBarController; 
+0

@ Ramesh.GR è vero risolvere il tuo problema? –

+0

Ottimo funziona ... Tnx per la tua Idea. –

5

uso questo metodo per aggiungere barra delle linguette da qualsiasi altra vista ..

-(void)addTabBarControllerInwindow 
    { 
     [UIView beginAnimations:nil context:NULL]; 
     [UIView setAnimationDuration:1.0]; 
     [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.window cache:YES]; 

     [self.navigationController.view removeFromSuperview]; 
     [self.window addSubview:tabBarController.view]; 
     [UIView commitAnimations]; 
    } 

mettere questo metodo in AppDelegate.m di file e in qualsiasi viewController esempio in LoginView controller quando si desidera aggiungere TabBar quindi dichiarare oggetto di delegato e chiamare questo metodo come muggito ..

AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate]; 
[appDelegate addTabBarControllerInwindow]; 
+0

Tnx per la tua risposta..ho usato questo codice per me funziona ... AppDelegate * appDelegate = [[UIApplication sharedApplication] delegate]; appDelegate.window.rootViewController = tabBarController; –

+0

@ Ramesh.GR sempre wel-come mate .. :) upvote o accpet rispondi se è utile a te .. –

1

Penso che potrebbe essere alla ricerca di più VC in un unico progetto. Quindi dichiarare e inizializzare un VC per loginVC e altri VC (per tabbar) in AppDelegate e dopo aver effettuato l'accesso, chiamare la seguente funzione.

Su lancio fanno LoginVC come RootViewController

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{// declare LoginVC and make it rootViewController 
self.window.rootViewController = self._loginVCObj; 
    [self.window makeKeyAndVisible]; 
} 

#pragma mark- Continue to next screen after successful Login

-(void) continueToNextView 
{ // Handle UI after Login like. 
[_loginVCObj._indicator stopAnimating]; 
    [_loginVCObj._loginButton setEnabled:YES]; 
//add the VC to the tabbar 
    self._tabBarController.viewControllers = [NSArray arrayWithObjects:self.navigationControllerList,_favItemListNavObj, _toDoHereVC, _settingNavObj, nil]; 
// make tabbar as rootViewController 
    self.window.rootViewController = self._tabBarController; 
} 
+0

Tnx per la tua risposta ... Ho usato questo codice che sta funzionando..per me .. AppDelegate * appDelegate = [ Delegato [applicazione condivisa sharedApplication]]; appDelegate.window.rootViewController = tabBarController; –

+0

@ Ramesh.GR Buono a sapersi. Godere. – HDdeveloper

Problemi correlati