I inherited an iOS application that shares variables throughout the project by doing the following:

```
[AppDelegate sharedDelegate].myVal = myVal;

```

This makes it easy to share data between view controllers, but it just feels wrong. I am not able to properly articulate and explain to the previous developer why though.

Why is this a bad programming/design decision to pass around data in this manner?