2013-02-19 4 views
0

pour la rétrocompatibilité avec iOS5 Je ne peux pas utiliser la fonction Affichage personnalisé du storyboard.Contrôleur de vue de contenu iOS5 bloque la vue de défilement sur le contrôleur de vue de conteneur personnalisé

J'ai un contrôleur de vue qui a en haut un menu de défilement horizontal. La vue de défilement se compose de plusieurs boutons dont chacun montre des contenus différents de différentes manières, donc je veux montrer un contrôleur de vue enfant pour chaque contenu.

Cette image explique mieux ce que j'essaie de faire.

enter image description here

Après le guide du développeur de l'Apple I essayé d'ajouter le contrôleur de vue du contenu comme enfant du contrôleur principal de la vue. Dès que le contrôleur de vue enfant est présenté, l'affichage déroulant avec le menu des boutons a cessé de défiler. Je me suis coincé sur ce problème et je ne sais pas pourquoi.

Voici le code:

MainViewController.m

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view. 


    self.menuScrollView.frame = CGRectMake(0, kScrollViewMarginTop, self.view.frame.size.width, kScrollViewHeight); 
    self.menuScrollView.showsHorizontalScrollIndicator = NO; 
    self.menuScrollView.pagingEnabled = YES; 


    self.firstMenuButton.selected = YES; 
} 

- (void)viewDidAppear:(BOOL)animated{ 
    [super viewDidAppear:animated]; 

    self.menuScrollView.contentSize = CGSizeMake(kScrollViewContentWidth, kScrollViewHeight); 
} 

- (IBAction)menuButtonTapped:(id)sender{ 

    UIButton *button = (UIButton *)sender; 

    switch (button.tag) { 
     case 0: 
      if (![self.firstMenuButton isSelected]) { 
       self.firstMenuButton.selected = YES; 
       [self.firstMenuButton setBackgroundImage:[UIImage imageNamed:@"firstMenuButton_selected.png"] forState:UIControlStateSelected]; 
       [self deselectButtonsExceptButtonWithTag:button.tag]; 

       //Shows the first content 
       UIViewController *contentViewController = (UITableViewController *)[self.storyboard instantiateViewControllerWithIdentifier:@"firstControllerStoryboardID"]; 
       [self displayContentViewController:contentViewController]; 
      } 
      break; 

     default: 
      break; 
    } 
} 

- (void)displayContentViewController:(UIViewController *)viewController{ 


    [self addChildViewController:viewController]; 

    viewController.view.frame = CGRectMake(0, self.menuScrollView.frame.origin.y + self.menuScrollView.frame.size.height + 5.0, 320.0, 200.0); 

    [self.view addSubview:viewController.view]; 
    [viewController didMoveToParentViewController:self]; 
} 

J'ai essayé de le réaliser dans iOS6 avec scénarisation et il fonctionne, donc je ne sais pas ce que je fais mal.

Toute aide est vraiment apprécié Vive

+0

Je ne vois rien de mal avec votre code. La vue du contrôleur de contenu a-t-elle l'apparence requise, et pouvez-vous interagir avec lui normalement? – rdelmar

+0

oui le contrôleur de vue de contenu est un contrôleur de vue de table avec lequel je peux interagir normalement. Je ne sais pas pourquoi je ne peux pas faire défiler le menu après l'ajout du contrôleur de vue du contenu enfant – ubiAle

Répondre

0

je fixe le problème de désactiver l'option AutoLayout du Storyboard

Questions connexes