基于导航的应用程序传递数据

时间:2011-05-17 11:38:03

标签: iphone ios4

我正在开发基于导航的应用程序 在rootviewcontroller中我有几个UITextFields。 rootviewController上有一个按钮,点击该按钮我正在使用pushviewcontroller更改视图。我想在mapview中使用在这些UItextFields中输入的值,即我的第二个视图。

PLZ建议我。

3 个答案:

答案 0 :(得分:1)

在推送到导航堆栈之前,您可以将所有信息传递给第二个控制器。

请参阅伪代码供您参考:

<强>首先

MyMapController* myController = [MyMapController alloc] initWithValues:Value1,value2,value3,......valuen];
[self.navigationController pushViewController:myController animated:YES];

[myController release];
myController = nil;

<强>第二

MyMapController* myController = [MyMapController alloc] init];

myController.value1 = value1;
myController.value2 = value2;
myController.value3 = value3;
............

myController.value7 = value7;
myController.value8 = value8;
[self.navigationController pushViewController:myController animated:YES];

[myController release];
myController = nil;

可能有更多的方法来发送数据,

答案 1 :(得分:1)

在将值分配给第二个控制器之前。 假设您必须发送textfield1的值。现在

secondController.textfield1 = textfield1;

然后按下控制器。

答案 2 :(得分:1)

使用NSDictionary对象存储第一个控制器的值。假设您使用两个文本字段 - textField1和textField2。

- (void)loadSecondController {
    NSDictionary *values = [NSDictionary dictionaryWithObjectsAndKeys:textField1.text, @"textField1", textField2.text, @"textField2", nil];

    // Assuming you are using IB files
    SecondViewController *controller = [[SecondViewController alloc] initWithNibName:nil bundle:nil];
    controller.values = values; // Declare a NSDictionary property 'values' in SecondViewController
    [self.navigationController pushViewController:controller animated:YES];
    [controller release];
}

现在在SecondViewController,您可以将其作为

进行访问
...
textField1Value = [values objectForKey:@"textField1"];
textField2Value = [values objectForKey:@"textField2"];
...