if (self.blueViewController.view.superview == nil)
이 문장은 blueViewController가 슈퍼뷰의 멤버에 포함되어 있는가를 검사할 떄 사용합니다.
위와 같이 nil이라면 포함되어 있지 않다는 의미입니다.
이것은 실제로 아직 메모리에 없을 수도 있고, 메모리에 있지만 슈퍼뷰에 포함되지 않고 있을 수도 있습니다.
즉, [self.view insertSubview:blueController.view atIndex:0]; 이 문장에 의해 메인 즉 self의 서브 뷰로 등록되지 않았을 경우에 해당됩니다.
위 구문이 실행되면 메인뷰의 서브뷰로 등록되고 atIndex가 0이기 때문에 가장 앞에 표시되어 보이게 될 것입니다. 반대로 메인뷰에서 제거하려면 아래와 같이 합니다.
[blueViewController.view removeFromSuperview];
위 코드는 blueViewController를 슈퍼뷰에서 제거하게 되어 더이상 화면에 나타나지 않게 됩니다.
이상태에서는 화면 표시만되지 않을 뿐 여전히 blueViewController는 메모리에 남아있습니다.
메모리에서 제거하려면 self.blueViewController = nil;를 사용하면 됩니다.