2011-05-17 77 views
0

我正在rootviewcontroller中使用基於導航的應用程序 ,我有幾個UITextField。在rootviewController上有一個按鈕,點擊該按鈕,我使用pushviewcontroller更改視圖。我想在mapview中使用在這些UItextField中輸入的值,即我的第二個視圖。數據在基於導航的應用程序中傳遞

PLZ給我一些建議。

回答

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; 

可能有更多的方式發送數據,

+0

但我怎麼做到這一點? – 2011-05-17 11:46:58

+0

thanx幫助jhaliya – 2011-05-17 12:08:20

1

在推送之前將值分配給第二個控制器。假設你必須發送textfield1的值。現在

secondController.textfield1 = textfield1;

然後做你的推動控制器。

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"]; 
... 
相關問題