配列に問題があります。私の CarViewController には、クラス Car のいくつかのオブジェクトを含む配列があります。
...Car.h
@interface Car : NSObject
@property (nonatomic, strong) NSString *name;
..そしてCar.m
- (void)encodeWithCoder:(NSCoder *)coder;
{
[coder encodeObject:name forKey:@"name"];
}
- (id)initWithCoder:(NSCoder *)coder;
{
self = [[Car alloc] init];
if (self != nil)
{
name = [coder decodeObjectForKey:@"name"];
}
return self;
}
とCarViewController
Car *car1 = [Car new];
car1.name = @"A1";
...
cars = [NSArray arrayWithObjects: car1, car2, ..., nil];
しかし、NewViewController でこの配列にアクセスしようとすると、問題が発生します。
- (IBAction)btn:(id)sender {
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Storyboard" bundle:nil];
CarViewController *vc = (CarViewController *)[storyboard instantiateViewControllerWithIdentifier:@"CarVC"];
Car *car = [vc.cars objectAtIndex:0];
NSLog(@"%@", car.name);
}
しかし、ログにはcar.name = (null)と書かれているだけです。よろしくお願いいたします。
更新:
- (IBAction)btn:(id)sender {
UINavigationController *nav = self.tabBarController.viewControllers[1];
CarViewController *vc = nav.topViewController;
Car *car = [vc.cars objectAtIndex:0];
NSLog(@"%@", car.name);
}
私は何か試してみましたが ( rdelmarの努力に感謝します)、結果は同じです。