Обычно вам требуется только одно окно в вашем приложении, содержащее все ваши представления, поэтому self.view.window
не очень хороший подход, я думаю ...
Если у меня есть то, чего вы пытаетесь достичь, возможно, правильное решение может быть контейнерным представлением.
Например, если вы работаете на iPhone:
UIView *containerView = [[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 960.0f, 480.0f)];
firstView.frame = CGRectMake(0.0f, 0.0f, 320.0f, 480.0f);
secondView.frame = CGRectMake(320.0f, 0.0f, 320.0f, 480.0f);
thirdView.frame = CGRectMake(640.0f, 0.0f, 320.0f, 480.0f);
[containerView addSubview:firstView];
[containerView addSubview:secondView];
[containerView addSubview:thirdView];
Теперь у вас есть контейнерный вид, содержащий три вида. Переместите свой контейнерный вид влево или вправо, чтобы отобразить понравившийся вид и скрыть два других вида, а затем обновить вид, находящийся вне экрана.
Другим подходом может быть использование UIScrollView в качестве containerView.
Надеюсь, это поможет ...
РЕДАКТИРОВАТЬ: Я неправильно понял ваш вопрос, извините.
Следующая попытка ...
Когда вы добавляете свой скриншот, вы добавляете его в правой части экрана (за кадром)
UIImageView *iv = [[UIImageView alloc] initWithFrame:CGRectMake(self.view.frame.size.width, self.view.frame.origin.y, self.view.frame.size.width, self.view.frame.size.height)];
iv.image = image;
[self.view.window insertSubview:iv aboveSubview:self.view];
Затем вы перемещаете исходный вид слева (за кадром)
self.view.frame = CGRectMake(-self.view.frame.size.width, self.view.frame.origin.y, self.view.frame.size.width, self.view.frame.size.height);
Но вы не показываете свой скриншот, поэтому представление пустое.
Я думаю, вы должны изменить это
UIImageView *iv = [[UIImageView alloc] initWithFrame:CGRectMake(self.view.frame.size.width, self.view.frame.origin.y, self.view.frame.size.width, self.view.frame.size.height)];
К этому
UIImageView *iv = [[UIImageView alloc] initWithFrame:CGRectMake(0.0f, self.view.frame.origin.y, self.view.frame.size.width, self.view.frame.size.height)];
Или вы можете добавить анимацию, чтобы показать ее справа.