2014-05-03 37 views
1

我在Xcode中製作了一個單一視圖應用程序,它只更新標籤中的每秒鐘的時間。我知道如何獲取當前時間(使用NSDate),但是我將刷新的方法在哪裏?所有我在ViewController看到的是下面的方法:如何在iOS應用程序上持續顯示當前時間?

- (void)viewDidLoad 
- (void)didReceiveMemoryWarning 

和所有我在AppDelegate中看到的是下面的方法:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions        
- (void)applicationWillResignActive:(UIApplication *)application 
- (void)applicationDidEnterBackground:(UIApplication *)application 
- (void)applicationWillEnterForeground:(UIApplication *)application 
- (void)applicationDidBecomeActive:(UIApplication *)application 
- (void)applicationWillTerminate:(UIApplication *)application 

據我所知,這些方法都沒有像他們有能力不斷更新時間。我希望它能像時鐘一樣顯示時間(它不斷更新)。我將如何做到這一點?我期待着有一種循環方法來做到這一點,但它看起來並不像有一種。

+2

嘗試的NSTimer: https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSTimer_Class/Reference/NSTimer。 html – BaSha

+0

可能重複的[如何定期調用一個方法在目標c?](http://stackoverflow.com/questions/8620109/how-to-make-a-periodic-call-to-a-method -in-objective-c) –

+0

您的標籤必須存在於視圖控制器中。所以這與應用代理無關。使用'NSTimer'定期更新標籤時間 – NightFury

回答

2

試試這個:)

- (void)viewDidLoad 
{ 
    NSDateFormatter *timeformatter = [[NSDateFormatter alloc] init]; 
    [timeformatter setTimeStyle: NSDateFormatterShortStyle]; 
    [timeformatter setDateFormat:@"hh:mm:ss a"]; 

    [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(UpdateTime:) userInfo:nil repeats:YES]; 

} 

-(void)UpdateTime:(id)sender 
{ 
    NSString *Time = [timeformatter stringFromDate:[NSDate date]]; 
    NSLog(@"Time == %@",Time); 
} 
+0

完美,謝謝! – user3451821

+0

最受歡迎:) –

相關問題