2012-11-20 12 views
5

Jestem nowy w rozwoju iPhone'a. Pracuję nad aplikacją TabBarViewcontroller (iPhone i iPad), a także utworzyłem jedną z nich: LoginViewController i akcję przycisku. Moje oczekiwanie jest po kliknięciu tego przycisku, kontrola przejdzie z LoginViewController do TabBarViewController. W tym TabBarViewcontroller mam 5 Tabbar (przedmioty) ViewControllers. Czy to możliwe?Jak podłączyć Przycisk Działanie do Tabbara Viewcontrollers

Jeśli możesz, podziel się swoimi pomysłami.

Odpowiedz

7

Przede wszystkim biorą UINavigationController i UITabbarController w MainWindow.xib i wiążą IBOutlet do odpowiednich pól .. ans ustawić LoginViewController jak rootViewController twoich UINavigationController ..

Następnie w metodzie didFinishLaunchingWithOptions wpisz to ..

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

Teraz utworzyć inną metodę w AppDelegate.m tak ..

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

Na działania przycisku Login .. wywołać tę metodę następująco ..

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

działa ... tnx za pomysł –

5

Więc w przycisk akcji Spróbuj poniższych kodów

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

@ Ramesh.GR jest to rozwiązanie problemu? –

+0

Świetnie działa ... Tnx za Twój pomysł. –

5

użyć tej metody, aby dodać umieszczenie zakładek z dowolnego innego widoku ..

-(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]; 
    } 

umieścić tę metodę w pliku AppDelegate.m iw dowolnym viewController np. w LoginView Controller gdy chcesz dodać umieszczenie zakładek następnie zadeklarować obiekt delegata i wywołać tę metodę, jak mieszka ..

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

Tnx za odpowiedź .. Użyłem tego kodu, który działa dla mnie ... AppDelegate * appDelegate = [[UIApplication sharedApplication] delegata]; appDelegate.window.rootViewController = tabBarController; –

+0

@ Ramesh.GR zawsze dobrze przyjac .. .. upvote lub accpet odpowiedź, jeśli jest przydatna .. –

1

myślę, że może być patrząc na stwardnienie VC w jednym projekcie. Deklaruj i zainicjuj VC dla loginVC i innychVC (dla tabbar) w appDelegate i po pomyślnym zalogowaniu wywołaj następującą funkcję.

dniu premiery zrobić LoginVC jak 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 za odpowiedź ... Użyłem tego kodu to działa .. dla mnie .. AppDelegate * appDelegate = [ [Delegacja UIApplication sharedApplication]]; appDelegate.window.rootViewController = tabBarController; –

+0

@ Ramesh.GR Dobrze to słyszeć. Cieszyć się. – HDdeveloper

Powiązane problemy