2010-09-23 6 views
0

Правого Я знаю, как сделать pictue книгу эффект, но я изо всех сил, чтобы удалить представлениеIPhone: Переключение вид, как книги с картинками, проблема с removeFromSuperView

Так страница 1, я добавить второй просмотр страницы с помощью addSubview (через салфетки). Я также увеличиваю счетчик, чтобы я знал, на какой странице я нахожусь.

Так как я могу вернуться на страницу 1? Понимаете, я думал, что это будет self.view removeFromSuperview но падает при попытке вернуться на страницу 2

Код ниже

- (void)handleSwipeFrom:(UISwipeGestureRecognizer *)recognizer { 

    if (recognizer.direction == UISwipeGestureRecognizerDirectionLeft) { 
    //NSLog(@"swipe right to left"); 

    UniversalAppAppDelegate *appDelegate = (UniversalAppAppDelegate *)[[UIApplication sharedApplication] delegate]; 
    PictureBookViewController *viewController2 =(PictureBookViewController *) [appDelegate getViewControllerForViewID:@"81"]; 

    [UIView beginAnimations:Nil context:nil]; 
     [UIView setAnimationDuration:0.6]; 
     [UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.view.superview cache:YES]; 
    self.viewController = viewController2; 
    self.viewController.pageNo = self.pageNo + 1; 

     [self.view addSubview:self.viewController.view]; 
     [UIView commitAnimations]; 
    [viewController2 release]; 

} else { 

    //NSLog(@"swipe left to right"); 
    NSLog([NSString stringWithFormat:@"%d", self.pageNo]); 
    if (self.pageNo > 0) { 

    [UIView beginAnimations:Nil context:nil]; 
    [UIView setAnimationDuration:0.6]; 
    [UIView setAnimationTransition:UIViewAnimationTransitionCurlDown forView:self.view.superview cache:YES]; 

    //self.viewController = viewController2; 
    //self.viewController.pageNo = self.pageNo - 1; 
    //[self.view addSubview:self.viewController.view]; 

    [self.view removeFromSuperview]; 
    //[self.view addSubview:self.viewController.view]; 
    [UIView commitAnimations]; 

    } 
    } 
} 

Update:

Каждый вид имеет свои собственные контроллеры представления.

+0

можете ли вы правильно отформатировать свой код? –

+0

Извините, что – Burf2000

ответ

1

Вы хотите удалить вид viewController, а не вид контейнера.

[self.viewController.view removeFromSuperview]; 
+0

Правильно я внес свои изменения, и теперь он держит страницу 2 и удаляет страницу 1. Итак, если страница 1 имела розовый фон, а страница 2 имела красный фон, розовый фон не возвращался, когда вы отводили назад, красный снова появляется – Burf2000

0

Это похоже на работу, а не на крушение? Теперь я убежден в этом. Мне просто нужен способ удаления последнего добавленного subview. Мой первый взгляд не является надписью

- (void)handleSwipeFrom:(UISwipeGestureRecognizer *)recognizer { 

    if (recognizer.direction == UISwipeGestureRecognizerDirectionLeft) { 
     //NSLog(@"swipe right to left"); 

     UniversalAppAppDelegate *appDelegate = (UniversalAppAppDelegate *)[[UIApplication sharedApplication] delegate]; 
     PictureBookViewController *viewController2 =(PictureBookViewController *) [appDelegate getViewControllerForViewID:@"82"]; 

     [UIView beginAnimations:Nil context:nil]; 
     [UIView setAnimationDuration:0.6]; 
     [UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.view.superview cache:YES]; 
     self.viewController = viewController2; 
     self.viewController.pageNo = self.pageNo + 1; 
     self.viewController.lastViewController = self; 
     [self.view addSubview:self.viewController.view]; 
     [UIView commitAnimations]; 
     [viewController2 release]; 

    } else { 

     //NSLog(@"swipe left to right"); 
     NSLog([NSString stringWithFormat:@"%d", self.pageNo]); 
     if (self.pageNo > 0) { 

      [UIView beginAnimations:Nil context:nil]; 
      [UIView setAnimationDuration:0.6]; 
      [UIView setAnimationTransition:UIViewAnimationTransitionCurlDown forView:self.view.superview cache:YES]; 
      self.pageNo --; 
      self.view = self.viewController.view; 
      [self.view removeFromSuperview ]; 
      self.view = self.lastViewController.view; 

      [UIView commitAnimations]; 

     } 
    } 
}