I seem to have forgotten the basics regarding this or perhaps I am just too tired.

I have a view controller and a view that is a subclass of `UIView` that is named MyViewClass.

In `viewDidLoad` of my viewController I `alloc` and `init` `self.myView` like this:

```
self.myView = [[MyViewClass alloc] initWithFrame:(CGRect){{0, 0}, 320, 480}];
self.view = self.myView;

```

At some time in my viewController, I would call `[self.view setNeedsDisplay];`. No problem here.

I expose a property in MyViewClass.h:

```
@property(nonatomic) i;

```

The property `i` will be used in `drawRect` in myView;
So, from my viewController I would set it like so:

```
self.myView.i = 100;

```

So my question is:

Why am I able to call `[self.view setNeedsDisplay];` in my view controller without needing to call `[self.myView setNeedsDisplay];`and `drawRect` will be called in myView, but I can't just do `self.view.i` in my view controller as `self.myView` has been assigned to `self.view` already in `viewDidLoad` in my view controller?