У меня есть контроллер uiview с двумя свойствами: trackName и playerObject. PlayerObject также имеет свойство trackName. Я вызываю этот контроллер uiview из моего основного контроллера uiview с этим кодом:
SecondaryViewController *nextViewController = [[SecondaryViewController alloc] initWithNibName:@"SecondaryViewController" bundle:nil];
NSString *trackName = @"a track";
nextViewController.trackName = trackName;
[self.navigationController pushViewController:nextViewController animated:YES];
[nextViewController release];
В SecondaryViewController я переопределяю метод initwithnibname, чтобы установить trackName playerObject. Я делаю это с этим кодом:
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
playerObject.trackName = trackName;
}
playerObject.trackName = trackName;
return self;
}
Наконец, мой playerObject имеет все данные представления, которые понадобятся SecondaryViewController. Похоже:
- (void)awakeFromNib{
NSString *s = trackName;
//more code relevant to the the view controller
}
Когда я отлаживаю, строка trackName в playerObject равна nil. Я предполагаю, что я делаю что-то не так. Как я могу заполнить это значение с помощью trackName, который я первоначально передал в основной контроллер uiview?