在prepareForSegue期间,我尝试为属性赋值并获取错误
2012-05-09 23:14:22.122 LeakSpotter [17709:15b03] * 由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:' - [UIViewController setCoordLong:]:无法识别的选择器已发送例如0xa86e930'
头:
@property (nonatomic, retain) NSString *CoordLong;
@property (nonatomic, retain) NSString *CoordLat;
它们是合成的。
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
NSLog(@"Fired segue %@", [segue identifier]);
if([[segue identifier] isEqualToString:@"returnToLeakSpotter"]){
NSLog(@"Return to leak spotter segue...");
//ContactsViewController *cvc = (ContactsViewController *)[segue destinationViewController];
}else if ([[segue identifier] isEqualToString:@"gotoTakePhoto"]) {
NSLog(@"Go to photo view");
takePhotoViewController *takePhotoC = [segue destinationViewController];
takePhotoC.CoordLong = @"-9.88";
takePhotoC.CoordLat = @"45.45";
我错过了一些明显的东西吗?
由于
答案 0 :(得分:4)
看起来你没有在故事板中的takePhotoViewController上设置视图控制器子类,所以它实例化了一个基本的UIViewController(如错误中所示),它不知道CoordLat是什么。
顺便说一句,按照惯例,类名以大写字母开头,变量/属性以小写字母开头,你似乎反过来了。
答案 1 :(得分:0)
您可能需要转换viewController,因为destinationViewController默认返回UIViewController。
takePhotoViewController *takePhotoC = (takePhotoViewController *)[segue destinationViewController];