Page d'introduction pour 5 secondes après le fichier default.png et avant le MainWindow.nib
-
23-09-2019 - |
Question
J'avais créé un projet où le default.png
dort pendant 3 secondes, puis le MainWindow.xib
est chargé, je voulais créer une nouvelle IntroPageViewController.xib
avant le chargement du FirstPageViewController.xib
. Je voulais mettre un texte dans le IntroPage qui charge pendant 10 secondes et a un bouton de saut.
Je l'ai déjà créé le FirstPageViewController.xib
, maintenant je veux charger dans IntroPageViewController.xib
applicationdidfinishlaunching
.
J'ai essayé de faire des changements dans la FirstPageAppDelegate.h
et .m mais encore les charges FirstPageViewController.xib
et si je fais des changements à info.plist
pour charger IntroPageViewController.xib
ou IntroPageViewController
l'application se bloque.
Besoin d'aide s'il vous plaît.
Merci une tonne à l'avance :)
Cordialement, Coder
La solution
Au lieu de charger le IntroPageViewController.xib avant la FirstPageViewController.xib manuellement, essayez ceci:
- Lorsque les charges FIRSTPAGE, montrent la vue IntroPage sur le dessus de celui-ci.
- Après un délai ou lorsque le bouton de saut est emboutie, retirez le IntroPage.
Voici comment:
Faire un IntroPageViewController avec le fichier correspondant xib.
Dans Xcode, la configuration d'un bouton et une méthode d'action pour ce bouton.
// in your .h file.
@interface IntroViewController : UIViewController {
UIButton *skipButton;
}
@property (nonatomic, retain) IBOutlet UIButton *skipButton;
-(IBAction)skipPressed;
@end
// in the .m file
-(IBAction)skipPressed {
[self.view removeFromSuperview]; // this removes intro screen from the screen, leaving you FirstView
}
// put this in the viewDidLoad method
- (void)viewDidLoad {
[super viewDidLoad];
[self performSelector:@selector(skipPressed) withObject:nil afterDelay:5];
}
// add these in FirstViewController.m
#import "IntroViewController.h"
- (void)viewDidLoad {
[super viewDidLoad];
IntroViewController *introViewController = [[IntroViewController alloc] initWithNibName:@"IntroViewController" bundle:[NSBundle mainBundle]];
[self.view addSubview:introViewController.view];
[introViewController release]; // this removes your IntroScreen from memory once it disappears offscreen
}
Maintenant, l'étape suivante consiste à ouvrir IntroViewController.xib dans Interface Builder et faites glisser un UIButton à la vue, définir son titre « Skip ».
Connectez le bouton à skipPressed actions et connectez le propriétaire du fichier du bouton.
Retour à Xcode et Build and Run pour le tester. Si tout va bien, votre IntroView devrait être visible au moment du lancement pendant 5 secondes ou jusqu'à ce que vous appuyez sur le bouton Ignorer.
Autres conseils
utiliser NSTimer pour créer une minuterie. L'action correspondante sera exécutée après 10 secondes ou lorsque le bouton de saut est enfoncée.