【问题标题】:data passing in navigation based application在基于导航的应用程序中传递数据
【发布时间】:2011-05-17 11:38:03
【问题描述】:

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

请给我一些建议。

【问题讨论】:

    标签: iphone ios4


    【解决方案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;
    

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

    【讨论】:

    • 但是我该怎么做呢??
    【解决方案2】:

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

    secondController.textfield1 = textfield1;

    然后做你的推动控制器。

    【讨论】:

      【解决方案3】:

      使用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"];
      ...
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-03-07
        • 1970-01-01
        • 2020-05-12
        • 2023-03-13
        • 1970-01-01
        • 2011-04-14
        • 1970-01-01
        相关资源
        最近更新 更多