2011-09-09 15 views
0

ネストしたビューからメインビューのNSStringプロパティを設定したいとします。以前のクラスを割り当ててclass.propertyにアクセスすることで、私は今すぐそうします。私がビューコントローラをプログラムでポップし、メインビューからプロパティをNSLogすると、nullです。別のクラスのプロパティを設定する

どうしますか?

EDIT:すべての

MainViewController *controller = [[MainViewController alloc] init]; 
switch (indexPath.row) { 
    case 0: 
     controller.category = @"Categorie 1"; 
     break; 
    default: 
     break; 
} 
[controller release]; 
+0

何をしているのかを確認するコードを投稿できますか? –

+0

コードサンプルをいただければ幸いです。しかし、私はあなたが正しいオブジェクトにプロパティを設定すべきではないと思う。 –

+0

ちょっとした:)上に見て – MaikelS

答えて

1

あなたはので、私はあなたがナビゲーションスタック下のコントローラのプロパティを設定しようとしていると仮定のViewControllerをポップしようとしている述べました。

クラスの新しいオブジェクトを作成する代わりに、既に作成された元のオブジェクトを取得する必要があります。

NSArray *viewControllers = [self.navigationController viewControllers]; // array of viewControllers currently on the navigation stack. 
MainVC *mainVC = (mainVC *)[viewControllers objectAtIndex:viewControllers.count - 2]; 
[mainVC setProperty:...]; 
+0

ありがとう!魔法と同じですが、まったく逆です! :) Upvotedと受け入れられる! – MaikelS

0

まあまず、あなたは単にクラスを呼び出すことにより、特定のインスタンスのプロパティにアクセスすることはできません。クラスは、その特定のインスタンスへの接続を持ちません。

親を参照するインスタンス変数をネストしたビューに持つ必要があります。それを作成するときにこれを設定してください。次に、子ビューコントローラにいるときでも、親にアクセスできます。子供の中にこのような

何か:

MyParentViewController *parentVC; 
+0

ええ、私はそれが私がやったことだと思った。 – MaikelS