2011-09-09 184 views
0

我想從嵌套視圖設置主視圖的NSString屬性。我現在通過分配以前的課程並訪問class.property。當我以編程方式彈出視圖控制器並NSLog從主視圖中的屬性,它是空的。設置另一個類的屬性

這是怎麼發生的?

編輯:

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

相關問題