Question: I have `AViewController` which is a rootViewController in it's navigationController.
In `AViewController`， i have a `objectA`, i declare it like this:

```
@interface AViewController : ParentVC 
@property (strong, nonatomic) ObjectA *objectA;
@end 

```

I also have a `BViewController`, declared similar like this: 

```
@interface BViewController : ParentVC 
@property (strong, nonatomic) ObjectA *objectA;
@end 

```

---

What i did is, in `AViewController`:

```
if (!_objectA)
    {
        _objectA = [ObjectA new];
    }
BViewController *bViewController = [[BViewController alloc] init];
bViewController.ojectA = _objectA;
[self.navigationController pushViewController:bViewController animated:YES];

```

While in `BViewController`, when i do this:

```
[self.navigationController popToRootViewControllerAnimated:NO];
        self.objectA = nil;

```

---

But the problem is, when i back into `AViewController`, the `objectA` is still not nil. It seems that i niled the objectA just in `BViewController`. These two objectA are separated.
What i really want to do is, in `BViewController` just keep a point to the objectA in `AViewController`.
How can i reach this? Thanks in advance.

Answer: 
You better to try this below approach, where we will have AViewController weak reference then manipulate its contents

```
@interface BViewController : ParentVC
@property (weak, nonatomic) AViewController *AViewControllerObject;
@end

BViewController *bViewController = [[BViewController alloc] init];
bViewController.AViewControllerObject = self;
[self.navigationController pushViewController:bViewController animated:YES];

self.AViewControllerObject.objectA = nil;
[self.navigationController popToRootViewControllerAnimated:NO];

```
You need to do in AViewController `- (void)viewWillAppear:`

```
- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:YES];
    self.objectA = bViewController.ojectA;
}

```