Search code examples
iosvariablesios7uiviewcontrollersdk

How to pass variables between view controller using presentViewController in iOS SDK?


some days ago I wrote a method to load a view controller using presentViewController:

-(void)passaGC:(NSString *)user
{
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
UIViewController *viewController = (UIViewController *)[storyboard instantiateViewControllerWithIdentifier:@"generaC"];
[self presentViewController:viewController animated:YES completion:nil];

}

But today I need to pass the variable user from this method to the loaded viewController.

How can I modify my method to do this?

I found other question on stack overflow but nothing is really similar to my request


Solution

  • add a property to your destination viewController (in the .h):

    @property (strong, nonatomic) NSString *user;
    

    and finally your method will look like

    -(void)passaGC:(NSString *)user
    {
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
    UIViewController *viewController = (UIViewController *)[storyboard instantiateViewControllerWithIdentifier:@"generaC"];
    
    viewController.user = user;
    
    [self presentViewController:viewController animated:YES completion:nil];
    
    }