从iphone视图传递到另一个视图的null值

时间:2012-07-13 12:16:32

标签: iphone

当我将字符串传递给另一个视图时,我有一个空值。 我的代码是:

在视图AddBarView.m中,我有字符串:

nameAdded = nameField.text;   //nameAdded is defined as NSString in AddBarView.h
NSLog(@"namefrom addbarview: %@", nameAdded);  OK it works here , NsLog return the textfild

现在在其他视图中添加AddLocationController.m

@synthesize nameAdded;
- (void)addViewControllerDidFinish:(AddBarView *)controller
{
    AddBarView *controllerAdd;
    NSLog(@"namefrom addbarview: %@", controller.nameAdded);  //here

    [self dismissModalViewControllerAnimated:YES];
}

NSLog返回一个(null)值。我的堕落是什么?

提前tx!

4 个答案:

答案 0 :(得分:2)

您需要按如下方式将内存分配给nameAdded字符串,并使用nameField对其进行初始化。

nameAdded=[[NSString alloc] initWithFormat:@"%@",nameField.text];

<强>编辑 将以下行放在init方法中。

nameAdded=[NSString stringWithFormat:@"%@",nameField.text];

答案 1 :(得分:2)

在这篇文章中,我提供了一个教程,了解如何将NSString从一个ViewController课转到另一个iOS - Passing variable to view controller

答案 2 :(得分:2)

nameAdded = nameField.text;你只保留了价值。如果稍后编辑nameField.text,则nameAdded的值也将更改。 你应该制作一份副本以保持价值。 nameAdded = [nameField.text copy]; 在AddBarView的viewDidUnload函数中检查是否已释放nameAdded。  否则,两个nameAdded变量是同一个对象?请打印他们的地址。

答案 3 :(得分:1)

实际上,您正在分配和初始化包含textField的类。所以它总是会返回NULL值,因为textField也已分配和初始化。如果类'AddBarView'在访问它的类之前调用​​,则可以简单地将它传递给类。相反,在访问它的类之后调用“AddBarView”,您可能希望将textField值存储在全局字符串中!!