Search code examples
iosobjective-cuinavigationcontrolleruitabbarcontrollerpresentviewcontroller

How to passing data when using presentViewController with UITabbarController


I am a newbie in ios. I tried working with UITabbarController and I had some problem with it when I tried passing data from a ViewController (this ViewController is not an item in Tabbar) to an other ViewController that is item in Tabbar. In this case i wanted when I click button Login,"Welcome to shop" will appear and the username in Login form will pass into label in "Welcome to shop". you can see picture below for more details

I use code below to make "welcom to shop" controller appearing:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
    UITabBarController *tabbarController= [storyboard instantiateViewControllerWithIdentifier: @"tabbarID"];
    [self presentViewController: tabbarController animated: YES completion: nil];

So any idea for me to passing username (in LoginController) into label (WelcomeToShopController) ?


Solution

  • My problem resolved after i researched :). Because i used tabbar and navigationController so i should instance tabbar -> NavigationController -> ViewController. In my case, this code below will work perfectly.

    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
        UITabBarController *tabbarController= [storyboard instantiateViewControllerWithIdentifier: @"tabbarID"];
        UINavigationController *nav = (UINavigationController *)[tabbarController.viewControllers firstObject];
        HistoryOrderingController *historyOderingVC = (HistoryOrderingController *)[[nav viewControllers] firstObject];
        historyOderingVC.user = self.user;
        [self presentViewController: tabbarController animated: YES completion: nil];