与popToViewController共享数据

时间:2011-02-21 23:18:01

标签: objective-c xcode ios4

我的应用程序崩溃了这条消息

011-02-22 00:12:30.422 test01[6246:207] -[RootViewController setString1:]: unrecognized selector sent to instance 0x623c800
2011-02-22 00:12:30.423 test01[6246:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[RootViewController setString1:]: unrecognized selector sent to instance 0x623c800'

* 首次调用堆栈:

这是我的代码:

- (void)save2:(id)sender{


(pseudoUtilisateur *) [pseudoUtilTb cellForRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]];
self.string =textField.text;
NSLog(@"donnees %@",string);


AvisUtilisateur *avs = [self.navigationController.viewControllers objectAtIndex:0];
avs.string1 = self.string;


[self.navigationController popViewControllerAnimated:YES];

}

我不明白为什么它告诉我RootviewController setString1。 ?

THX

1 个答案:

答案 0 :(得分:1)

这一行:

avs.string1 = self.string;

由编译器翻译成:

[avs setString1:[self string]];

您将avs定义为AvisUtilisateur *avs,因此您假设根视图控制器(导航控制器的视图控制器数组中索引为0的对象)是AvisUtilisateur的实例。无论这是否正确,您的代码都假定根视图控制器具有名为readwrite的{​​{1}}属性,显然情况并非如此。