设置另一个类的属性

时间:2011-09-09 13:28:10

标签: iphone objective-c

我想从嵌套视图设置主视图的NSString属性。我现在通过分配前一个类并访问class.property来实现。当我以编程方式弹出视图控制器并从主视图NSLog属性时,它为null。

这是怎么发生的?

编辑:

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

2 个答案:

答案 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;