Xcode: передача метки во второе представление?

У меня есть две метки местоположения на моем первом контроллере представления, мне нужно, чтобы они отображались на другом контроллере представления при открытии, что является лучшим способом реализовать это?

Ярлыки, которые я хочу передать, выглядят так:

  latitudeLabel.text = [NSString stringWithFormat:@"latitude=%f", location.coordinate.latitude];
longitudeLabel.text = [NSString stringWithFormat:@"longitude=%f", location.coordinate.longitude];
0
nl ja de

3 ответы

я создал образец для обмена данными между классами. Все, что вам нужно сделать, объясняется здесь

1
добавлено

Вы должны создавать одинаковые метки на обоих контроллерах представления и передавать только строковые данные. Вы можете передавать параметры из одного класса в другой со свойствами (поскольку они являются общедоступными).

В первом виде контроллер .m:

- (void)openSecondViewController {
    SecondViewController *controller = [SecondViewController alloc] init];
    controller.data = [NSArray arrayWithObjects:@"First String", @"Second String", nil];
    [self.navigationController pushViewController:controller];
}


In second view controller .h:

@interface SecondViewController : UIViewController
    @property (weak, nonatomic) id data;
    @property (weak, nonatomic) IBOutlet UILabel *label1;
    @property (weak, nonatomic) IBOutlet UILabel *label2;
@end


In second view controller .m:

- (void)setData:(id)data {
    self.label1.text = [data objectAtIndex:0];
    self.label2.text = [data objectAtIndex:1];
}
0
добавлено

Перед тем, как вы нажмете secondViewController, вы можете добавить свои метки в виде подсмотров второго представления ViewController

 SecondViewController *cntr = [[SecondViewController alloc] initWithNibName:@"" bundle:nil];
 [cntr.view addSubview latitudeLabel];
 [cntr.view addSubview longitudeLabel];

 [self.navigationController  pushViewController:cntr animated:YES]
0
добавлено