в приведенном выше коде вы добавляете P2 к P1, затем удаляете P1, тем самым удаляя оба из superView P1.
Если вы пытаетесь переключить два, добавьте P2 к суперпредставлению P1,затем удалите P1.т.е.
[p1.superView addSubview: p2];
[p1 removeFromSuperview];
Кроме того, не вызывайте viewDidLoad.Это, вероятно, сведет на нет все, что вы делаете.Особенно, если вы загружаете из Nib
Удачи