空值从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提前!
您需要将内存分配给nameAdded
字符串,如下所示,并使用nameField对其进行初始化。
nameAdded=[[NSString alloc] initWithFormat:@"%@",nameField.text];
编辑 把下面线在init方法。
nameAdded=[NSString stringWithFormat:@"%@",nameField.text];
nameAdded在.h文件中定义为NSString和resctive属性和syntesize。 NSLog(@“%@”,nameAdded);返回正确的值,但在其他视图中为空 – doxsi 2012-07-13 12:31:39
@doxsi这是因为当你从另一个视图调用它时,textfield没有得到它的值。 – 2012-07-13 12:35:29
尝试编辑代码 – 2012-07-13 12:40:04
其实你分配和初始化保存文本字段的类。所以它会一直返回NULL值,因为textField也被分配和初始化。如果在访问它的类之前调用类“AddBarView”,您可以简单地将它传递给类。相反,在访问它的类之后调用“AddBarView”,您可能希望将textField值存储在全局字符串中!
nameAdded = nameField.text;你只保留了价值。如果稍后编辑nameField.text,则nameAdded的值也会更改。 你应该做一个副本来保持价值。 nameAdded = [nameField.text copy]; 检查AddBarView的viewDidUnload函数是否释放了nameAdded或不。 否则,这两个nameAdded变量是相同的对象?请打印他们的地址。
你记录了nameField.text吗? – Lucas 2012-07-13 12:21:29