我试图在两个视图之间传递日期/字符串,但我不知道。
我的代码
-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if ([[segue identifier] isEqualToString:@"pasa_codigo"]) {
Formulario *segundoView = [segue destinationViewController];
segundoView.nombre = [input_codigo text];
}
}
错误:"原因:' - [UIViewController setNombre:]:无法识别的选择器发送到实例"
答案 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;