0

我必须将字符串值从一个视图传递到另一个视图中的标签。但是当我做这样的事情时,标签值为空。无法理解我哪里出错了?这是我的代码:

在 FirstViewController.m 中

SecondViewController *gp=[[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:[NSBundle mainBundle]];
gp.d.text = [NSString stringWithFormat:@"%@", nam];
[self.view addSubview:gp.view];
[gp release];

在 SecondViewController.h

@interface SecondViewController : UIViewController<NSXMLParserDelegate>
{
    UILabel *d;
}

@property (nonatomic,retain) IBOutlet UILabel *d;

在 SecondViewController.m @synthesize d;

- (void)viewDidLoad
{
     NSString *urlString1 = [NSString stringWithFormat: @"http://192.168.0.108:8732/Design_Time_Addresses/ICloudServices/AppointmentService/json/GetProviders/?cid={%@}", [d text]];
}

但是这里没有传递 d 的值。为什么我不明白。我哪里错了?

4

1 回答 1

0

在添加子视图之前将值传递给 IBOutlet UILablel 时未分配(没有内存引用)。

所以更好的方法是在添加 subView 之后传递你的值。

[self.view addSubview:gp.view];
gp.d.text=[NSString stringWithFormat:@"%@",nam];

编辑:更好的方法是传递字符串是这样的:

Create property of NSString in SecondViewController say yourString.

现在

SecondViewController *gp=[[SecondViewController alloc]initWithNibName:@"SecondViewController" bundle:[NSBundle mainBundle]];
gp.yourString = [nam retain];
[self.view addSubview:gp.view];

现在在 SecondViewController 的 viewDidLoad 中执行以下操作:

self.d.text = self.yourString;

根据您的要求在任何地方使用 yourString。

于 2012-10-02T10:40:41.603 回答