空值从iphone视图传递到另一个

问题描述:

当我传递一个字符串到另一个视图时,我有一个空值。 我的代码是:空值从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返回(空)值。我的f Wh声是什么?

tx提前!

+0

你记录了nameField.text吗? – Lucas 2012-07-13 12:21:29

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

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

编辑 把下面线在init方法。

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

nameAdded在.h文件中定义为NSString和resctive属性和syntesize。 NSLog(@“%@”,nameAdded);返回正确的值,但在其他视图中为空 – doxsi 2012-07-13 12:31:39

+0

@doxsi这是因为当你从另一个视图调用它时,textfield没有得到它的值。 – 2012-07-13 12:35:29

+0

尝试编辑代码 – 2012-07-13 12:40:04

见我这个职位,我给了一个教程此处,了解如何通过一个NSString从一个ViewController类到另一个iOS - Passing variable to view controller

其实你分配和初始化保存文本字段的类。所以它会一直返回NULL值,因为textField也被分配和初始化。如果在访问它的类之前调用​​类“AddBarView”,您可以简单地将它传递给类。相反,在访问它的类之后调用“AddBarView”,您可能希望将textField值存储在全局字符串中!

+0

Tx。我怎样才能定义一个全局字符串? – doxsi 2012-07-15 10:36:24

+0

你可以在很多方面做到这一点!通常,我将创建一个C文件(单独保存.h文件)。在那里声明你的字符串。在'.pch'中导入。现在你可以在你的课堂上访问它:-) – Nina 2012-07-16 06:01:21

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