Xcode:将标签传递给第二个视图?

时间:2013-01-29 09:46:02

标签: objective-c xcode cocoa-touch location

我的第一个视图控制器上有两个位置标签我需要它们在打开时显示在另一个视图控制器上,实现它的最佳方法是什么?

我想传递的标签如下:

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

3 个答案:

答案 0 :(得分:1)

我创建了一个用于在类之间共享数据的示例。您需要做的就是解释here

答案 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]

答案 2 :(得分:0)

您必须在两个视图控制器上创建相同的标签,并仅传递字符串数据。您可以使用属性将参数从一个类传递到另一个类(因为它们是公共的)。

在第一个视图中,控制器.m:

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


在第二个视图控制器中.h:

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


在第二个视图控制器中.m:

- (void)setData:(id)data {
    self.label1.text = [data objectAtIndex:0];
    self.label2.text = [data objectAtIndex:1];
}