【发布时间】:2009-08-27 18:33:43
【问题描述】:
我有一个具有两个属性的 uiviewcontroller:trackName 和 playerObject。 PlayerObject 也有一个 trackName 属性。我使用以下代码从我的主 uiviewController 调用此 uiviewcontroller:
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 方法来设置 playerObject 的 trackName。我用这段代码来做这个:
- (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
}
当我调试时, playerObject 中的 trackName 字符串为零。我假设我做错了什么。如何使用我最初在主 uiview 控制器中传递的 trackName 填充此值?
【问题讨论】:
标签: iphone cocoa-touch uiviewcontroller