La configuration de UIScrollView pour glisser entre les 3 contrôleurs de vue
Je suis en train de mettre en place un UIScrollView afin que je puisse glisser entre mes 3 contrôleurs de vue. C'est mon code dans AppDelegate.m:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
//Override point for customization after application launch.;
UIScrollView *sv = [[UIScrollView alloc] init];
BarsViewController *bvc = [[BarsViewController alloc] init]; //Create BarsViewController
StopwatchViewController *svc = [[StopwatchViewController alloc] init]; //Create StopwatchViewController
TimerViewController *tvc = [[TimerViewController alloc] init]; //Create TimerViewController
[sv addSubview:bvc.view];
[sv addSubview:svc.view];
[sv addSubview:tvc.view];
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade]; //Hide status bar
self.window.rootViewController = sv;
[self.window makeKeyAndVisible];
return YES;
}
Il donne une erreur sur cette ligne:
self.window.rootViewController = sv;
en disant: "Incompatible types de pointeur de l'affectation à 'UIViewController *" de UIScrollView *'".
Cependant, il n'y a pas une telle chose comme un UIScrollViewController, donc je ne sais pas quoi faire.
En gros, je veux juste la totalité de l'écran à défilement de la vue qui me permet de me glisser entre mes 3 contrôleurs de vue. Comment pourrais-je aller sur le faire?
Wenderlich a un tutoriel similaire faite sur UIImageView. Essayez de changer UIImageView et à l'aide de UIViewControllers à la place. raywenderlich.com/10518 (en vertu de la Pagination avec UIScrollView)
Apparemment, c'est pas le cas, parce que vous devez penser parent-enfant-vue-contrôleur de la hiérarchie.
Apparemment, c'est pas le cas, parce que vous devez penser parent-enfant-vue-contrôleur de la hiérarchie.
OriginalL'auteur user2397282 | 2013-11-06
Vous devez vous connecter pour publier un commentaire.
UPD: juin, 2015
Swift
Le concept reste le même, ce qui est décrit ci-dessous en Objective-C section. Il y a un peu de changement dans la syntaxe. Pour ajouter childviewcontroller utiliser l'extrait de code suivant:
Vérifier mon Swift Github Exemple De Code
Objective-C
Créer votre propre conteneur de-vue-contrôleur (je vais l'appeler combinedViewController), qui tiendra vos trois contrôleurs de défilement de la vue.
Hériter comme vous le faites toujours UIViewController, puis utilisez addChildViewController public de l'API dans votre nouveau combinedViewController
-viewDidLoad:
comme ceci:Voici ce que fait le code:
Faire cette opération avec chacun de vos viewControllers. Ensuite, réglez votre combinedViewController comme un rootViewController.
si vous avez besoin de plus d'explications, n'hésitez pas à demander.
Référence: Conception conteneur personnalisé-vue-contrôleur
Voici mon Objective-C Github exemple de code
UPD: Merci @Oliver Atkinson pour préciser que
addChildViewController:
méthode appelle aussi l'enfantwillMoveToParentViewController:
méthode automatiquement.Résultats:
désolé de mon erreur, vous devez écrire
-willMoveToParentViewController:
Cela fonctionne! Merci beaucoup pour tous les efforts que vous avez vécu!! Vous êtes incroyable!!!
Merci pour le github de l'échantillon de code très utile!
parfois, vous ne voulez pas avoir une vue entière de contrôleur et veulent juste avoir de la pagination est activée dans un défilement de l'affichage, qui est à l'intérieur d'un autre point de vue contrôleur.
OriginalL'auteur Neil Galiaskarov
OriginalL'auteur sachin
Swift 3.0
Basé sur Sachin réponse - un peu plus générique - il suffit d'ajouter l'élément suivant de vues tableau
OriginalL'auteur chrisco
Essayer ce repo git, à l'Aide de ce repo vous pouvez créer une vue de navigation comme Snapchat/Amadou Pages Principales.
https://github.com/goktugyil/EZSwipeController
OriginalL'auteur Jayesh Thanki