在视图之间传递日期

时间:2014-06-23 09:48:11

标签: ios objective-c

我试图在两个视图之间传递日期/字符串,但我不知道。

我的代码

-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
   if ([[segue identifier] isEqualToString:@"pasa_codigo"]) {
        Formulario *segundoView = [segue destinationViewController];
        segundoView.nombre = [input_codigo text];

   }
}

错误:"原因:' - [UIViewController setNombre:]:无法识别的选择器发送到实例"

3 个答案:

答案 0 :(得分:0)

nombre应该是Formulario类中的属性。此外,您还需要使用[segue destinationViewController]类输入Formulario

-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
   if ([[segue identifier] isEqualToString:@"pasa_codigo"]) {
        Formulario *segundoView = (Formulario *)[segue destinationViewController];
        segundoView.nombre = [input_codigo text];

   }
}

答案 1 :(得分:0)

[seque destinationViewController];返回的内容是UIViewController,请尝试投射它。因此,请使用此Formulario *sequndoView = (Formulario *)[seque destinationViewController];

替换

因为[seque destinationViewController];只是在您尝试UIViewController时返回segundoView.nombre = [input_codigo text],它会尝试在UIViewController的实例上调用该集,但UIViewController不具有nombre属性的Formulario属性,因此这就是类型转换的原因。

答案 2 :(得分:0)

在IB中,将类名称UIViewController更改为Formulario

-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{

    if ([[segue identifier] isEqualToString:@"pasa_codigo"]) {

        UIViewController *segundoView = [segue destinationViewController];

        if ([segundoView isKindOfClass:[Formulario class]) {

            segundoView.nombre = [input_codigo text];

        }else{
            //For Debugging print the view controller to know the name of the destination                
            NSLog(@"Which view controller is Destination : %@",segundoView);
        }


    }
}

你仍然面临崩溃,然后验证" nombre"属性在Formulario.h文件中声明。

 @property(nonatomic,retain)NSString *nombre;