2011-09-09 144 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

相关问题