My question is why do you need to first test self.redClass.view.superview==nil? Don't redClass and blueClass views share the same superview? And since the superview is already initialised in the delegate.m file, why do you examine it here again?
why don't you check (self.blueClass.view.superview == nil).
If the object is flushed from memory, shouldn't you check this first, then check
(self.blueClass == nil)?