Hey les gars, une autre question!Iphone XCode Mon compte à rebours n'anime plus
Encore une fois je voudrais dire que je suis nouveau à ce sujet et donc ma capacité à comprendre le langage Objective C et l'application Xcode est limitée! Donc, votre aide est vraiment appréciée!
J'ai créé une application de compte à rebours qui montre quand une station de radio va se mettre en marche, le compte à rebours fonctionne parfaitement et mis à jour en temps réel une seconde, puis je l'insère dans une "If-Statement" du lancement de la station arrive le compte à rebours disparaît, mais maintenant mon compte à rebours ne se met pas à jour en temps réel, il se trouve juste statique.
Voici mon code:
- (void)viewDidAppear:(BOOL)animated {
self.today = [NSDate date];
NSDateFormatter *dateformatter = [[NSDateFormatter alloc] init];
[dateformatter setDateFormat:@"MM/dd/yyyy hh:mm:ss"];
NSString *launchDay = [[NSString alloc] initWithString:@"11/26/2010 11:59:59"];
NSDate *currentDate = [dateformatter dateFromString:launchDay];
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
int unitFlags = NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;
NSDateComponents *components = [gregorian components:unitFlags fromDate:today toDate:currentDate options:0];
if ([today timeIntervalSinceDate:currentDate] <= 0){
self.today = [NSDate date];
NSDateFormatter *dateformatter = [[NSDateFormatter alloc] init];
[dateformatter setDateFormat:@"MM/dd/yyyy hh:mm:ss"];
countdownLabel.text = [NSString stringWithFormat:@"%02d:%02d:%02d:%02d", components.day, components.hour, components.minute, components.second ];
self.timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(updateLabel) userInfo:nil repeats:YES];
[self updateLabel];
days.text = @"Days";
hours.text = @"Hours";
mins.text = @"Mins";
secs.text = @"Secs";
until.text = @"Until XtremeFM Launch!";
}
else {
countdownLabel.text [email protected]"XtremeFM is LIVE";
}
}
Les gars toute aide est grandement appréciée et j'espère vraiment que quelqu'un là-bas peut me aider!
Merci les gars, Phil
ok est le code ici pour l'ensemble du fichier .M de l'écran d'accueil
#import "XtremeFMViewController.h"
@implementation XtremeFMViewController
/*
// The designated initializer. Override to perform setup that is required before the view is loaded.
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
if ((self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil])) {
// Custom initialization
}
return self;
}
*/
/*
// Implement loadView to create a view hierarchy programmatically, without using a nib.
- (void)loadView {
}
*/
@synthesize countdownLabel, today, timer, todayDate, days, hours, mins, secs, until;
-(void)updateLabel {
self.today = [NSDate date];
NSDateFormatter *dateformatter = [[NSDateFormatter alloc] init];
[dateformatter setDateFormat:@"MM/dd/yyyy hh:mm:ss"];
//NSString *launchDay = [[NSString alloc] initWithString:@"11/26/2010 11:59:59"];
//NSDate *currentDate = [dateformatter dateFromString:launchDay];
//NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
//int unitFlags = NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;
//NSDateComponents *components = [gregorian components:unitFlags fromDate:today toDate:currentDate options:0];
}
- (void)viewDidAppear:(BOOL)animated {
self.today = [NSDate date];
NSDateFormatter *dateformatter = [[NSDateFormatter alloc] init];
[dateformatter setDateFormat:@"MM/dd/yyyy hh:mm:ss"];
NSString *fathersDay = [[NSString alloc] initWithString:@"11/26/2010 11:59:59"];
NSDate *currentDate = [dateformatter dateFromString:fathersDay];
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
int unitFlags = NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;
NSDateComponents *components = [gregorian components:unitFlags fromDate:today toDate:currentDate options:0];
if ([today timeIntervalSinceDate:currentDate] <= 0){
self.today = [NSDate date];
NSDateFormatter *dateformatter = [[NSDateFormatter alloc] init];
[dateformatter setDateFormat:@"MM/dd/yyyy hh:mm:ss"];
countdownLabel.text = [NSString stringWithFormat:@"%02d:%02d:%02d:%02d", components.day, components.hour, components.minute, components.second ];
self.timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(updateLabel) userInfo:nil repeats:YES];
[self updateLabel];
days.text = @"Days";
hours.text = @"Hours";
mins.text = @"Mins";
secs.text = @"Secs";
until.text = @"Until XtremeFM Launch!";
}
else {
countdownLabel.text [email protected]"XtremeFM is LIVE";
}
}
- (IBAction)watchLive {
self.today = [NSDate date];
NSDateFormatter *dateformatter = [[NSDateFormatter alloc] init];
[dateformatter setDateFormat:@"MM/dd/yyyy hh:mm:ss"];
NSString *launchDay = [[NSString alloc] initWithString:@"11/26/2010 11:59:00"];
NSDate *currentDate = [dateformatter dateFromString:launchDay];
//NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
//int unitFlags = NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;
//NSDateComponents *components = [gregorian components:unitFlags fromDate:today toDate:currentDate options:0];
//countdownLabel.text = [NSString stringWithFormat:@"%02d:%02d:%02d:%02d", components.day, components.hour, components.minute, components.second ];
if ([today timeIntervalSinceDate:currentDate] >= 0){
NSString *webpage = @"http://xphiltestpagex.is.livestream-api.com/livestreamiphone/philtestpage/playlist.m3u8";
NSURL *nswebpage = [NSURL URLWithString:webpage];
NSURLRequest *nsurl = [NSURLRequest requestWithURL:nswebpage];
[webView loadRequest:nsurl];
}
else {
UIAlertView*alert = [[UIAlertView alloc] initWithTitle:@"Coming Soon" message:@"Feed goes live Friday 26th November 12:00pm" delegate:nil cancelButtonTitle:@"Dismiss" otherButtonTitles:nil];
[alert show];
[alert release];
}
}
-(IBAction)requestsPage {
RequestsPageViewController *move = [[RequestsPageViewController alloc]initWithNibName:nil bundle:nil];
move.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
[self presentModalViewController:move animated:YES];
[move release];
}
-(IBAction)twitterButton {
RequestsPageViewController *move = [[RequestsPageViewController alloc]initWithNibName:nil bundle:nil];
move.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
[self presentModalViewController:move animated:YES];
[move release];
}
/*
// Override to allow orientations other than the default portrait orientation.
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Return YES for supported orientations
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
*/
- (void)didReceiveMemoryWarning {
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];
// Release any cached data, images, etc that aren't in use.
}
- (void)viewDidUnload {
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}
- (void)dealloc {
[super dealloc];
}
@end
Voir j'avais un (BOOL) animée sur le ViewDidAppear
mais je ne suis pas sûr comment ajouter cela dans l'instruction if (Noob)
inclure votre code pour 'updateLabel'. Vous ne définissez le texte de l'étiquette qu'une seule fois où il semble que vous souhaitiez que l'étiquette soit mise à jour toutes les secondes. – falconcreek
s'il vous plaît corriger le formatage. Il semble que vous ayez déplacé le code qui définit le texte de l'étiquette (qui est maintenant mis en commentaire) dans 'viewDidAppear' qui n'est appelé que lorsque la vue entière est affichée. Je pense que vous devez passer du temps à lire le suivant http://developer.apple.com/iphone/library/featuredarticles/ViewControllerPGforiPhoneOS/BasicViewControllers/BasicViewControllers.html#//apple_ref/doc/uid/TP40007457-CH101-SW19 – falconcreek