Search code examples
iosobjective-cuiviewcontrollersegue

Transferring String from UIViewController using Segue


I am doing the following:

#ViewController1.m

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
   NSLog(@"Transferring");

   guestViewController *controller = [segue destinationViewController];
   [controller.label isEqualToString:self.num_value.text];
}

However when the view is loaded, the text does not run through or show up in the label. I have done this in past programs and it has worked on Xcode 4. However, for some reason in Xcode 5 it is not working for me. Is there something else that I need to implement to make this work in Xcode?


Solution

  • Add this to your guestViewController's header file :

    @property (nonatomic, strong) NSString *value;

    The your prepareForSegue method becomes something like this :

    - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
    {
       NSLog(@"Transferring");
    
       guestViewController *controller = [segue destinationViewController];
       [controller setValue : self.num_value.txt];
    }
    

    isEqualToString is for comparison! Not to be used for assigning values.

    Then in your viewDidLoad method, add this :

    [textLabel setText : value];