我想从嵌套视图设置主视图的NSString属性。我现在通过分配前一个类并访问class.property
来实现。当我以编程方式弹出视图控制器并从主视图NSLog属性时,它为null。
这是怎么发生的?
编辑:
MainViewController *controller = [[MainViewController alloc] init];
switch (indexPath.row) {
case 0:
controller.category = @"Categorie 1";
break;
default:
break;
}
[controller release];
答案 0 :(得分: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:...];
答案 1 :(得分:0)
首先,您只需调用该类即可访问特定实例的属性。该类与它的任何特定实例没有任何关联。
您需要在嵌套视图中有一个引用父项的实例变量。在创建它时进行设置。然后,当您在子视图控制器中时,您仍然可以访问父视图。
孩子这样的事情:
MyParentViewController *parentVC;