设置另一个类的属性
问题描述:
我想从嵌套视图设置主视图的NSString属性。我现在通过分配以前的课程并访问class.property
。当我以编程方式弹出视图控制器并NSLog从主视图中的属性,它是空的。设置另一个类的属性
这是怎么发生的?
编辑:
MainViewController *controller = [[MainViewController alloc] init];
switch (indexPath.row) {
case 0:
controller.category = @"Categorie 1";
break;
default:
break;
}
[controller release];
答
你刚才提到你要弹出的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
答
那么首先,你不能简单地调用类访问特定实例的属性。这个类没有任何连接到它的任何特定实例。
您需要在嵌套视图中引用父对象的实例变量。在创建时设置它。然后,当你在子视图控制器中时,你仍然可以访问父项。
像这样的事情在孩子:
MyParentViewController *parentVC;
+0
是的,我认为这就是我所做的。 – MaikelS
你可以发布一些代码,看看你在做什么? –
代码示例将不胜感激。不过,我认为你不应该把这个属性设置在正确的对象上。 –
刚刚做过:)看上面 – MaikelS