Playing around today, a thought popped into my head to have code in my app that just added a ViewController to the navigation controller’s ViewController array. It wouldn’t allow that. I changed the array I was using to an NSMutable array and it worked. So my question is how does pushViewController add a new ViewController to the array internally? Does it re-init the array or is there some of weird stuff going on behind the scenes that does this?