上のUIViewController内のオブジェクトのプロパティを移入することはできません。 PlayerObjectにはtrackNameプロパティもあります。私はこのコードで私のメインのUIViewControllerからこののUIViewControllerを呼び出す:SecondaryViewControllerでは、私は2つのプロパティを持つのUIViewControllerを持っているiPhone
SecondaryViewController *nextViewController = [[SecondaryViewController alloc] initWithNibName:@"SecondaryViewController" bundle:nil];
NSString *trackName = @"a track";
nextViewController.trackName = trackName;
[self.navigationController pushViewController:nextViewController animated:YES];
[nextViewController release];
私はplayerObjectのtrackNameを設定するinitwithnibnameメソッドをオーバーライドします。
- (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文字列はnilになります。私は何か間違っていると思う。どのようにして、この値にメインuiviewコントローラで最初に渡したtrackNameをどのように設定することができますか?
Daniel、secondarywithcontrollerのinitwithnibnameの他に、別のメソッドでtrackNameを設定できますか?もしそうなら、どの方法? – Atma
私はこのt rackNameをどのような目的で使用しているのか分からないかもしれません。 secondaryviewcontrolがロードを行いません – Daniel
カントーあなたがプレイヤオブジェクトを割り当てた後、あなたはそれを設定する必要があります。ビューに関連するすべてのことは、プレイヤーオブジェクトクラスで行われます。 tracknameは無関係です。私は、元のmainviewclassからオブジェクトにプロパティを設定する必要があります。 – Atma