2013-09-28 2 views
0

Я хочу показать дату, приложение, которое я делаю, было открыто в первый раз (это единственный вид во всем приложении на данный момент).Отображение даты, когда приложение было открыто в первый раз

Какой предмет лучше всего использовать на мой взгляд, чтобы отображать дату и как ее получить?

+0

Вы хотите, чтобы это значение даты всегда отображалось во время работы приложения? Как работает приложение? Имеет ли он несколько экранов/viewcontroller? – bneely

+0

Да, я хочу, чтобы значение всегда отображалось во время его работы, так как оно должно напоминать пользователю, когда он начал его использовать. Для 1.0 приложение не будет иметь более одного экрана. – herbigt

ответ

2

В вашем AppDelegate:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    // Override point for customization after application launch. 

    if(![[NSUserDefaults standardUserDefaults] objectForKey:@"firstOpenDate"]) 
    { 
     NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
     [dateFormatter setDateStyle:NSDateFormatterLongStyle]; 
     [[NSUserDefaults standardUserDefaults] setObject:[dateFormatter stringFromDate:[NSDate date]] forKey:@"firstOpenDate"]; 
    } 
    NSLog(@"First Opened: %@",[[NSUserDefaults standardUserDefaults] objectForKey:@"firstOpenDate"]); 


    return YES; 
} 

Просто измените setDateStyle:NSDateFormatterLongStyle, если вы хотите другие форматы. Вы можете запросить NSUserDefaults из любого места.

В ViewController.m

- (void)viewDidAppear:(BOOL)animated 
{ 
    [super viewDidAppear:animated]; 
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Hi. You first opened the app on" message:[[NSUserDefaults standardUserDefaults] objectForKey:@"firstOpenDate"] delegate:nil cancelButtonTitle:@"Thanks" otherButtonTitles:nil]; 
    [alert show]; 
} 
+0

ОК, спасибо. И как мне отобразить это значение в моем диспетчере просмотра? – herbigt

+0

См. Редактирование, которое должно это сделать. – mmackh

+0

Хорошо, это довольно круто:) Но я бы хотел показать дату непосредственно под ярлыком с текстом «дни без xyz с тех пор, как я уже создал на моем диспетчере представлений». Как я мог это получить? – herbigt

0

На первом запуске, проверьте, чтобы увидеть, если вы сохранили дату по умолчанию пользователя с помощью objectForKey. Если нет, то сохранить сегодняшнюю дату

[дата NSDate]

Для пользователя по умолчанию с помощью SetObject: forKey:

Затем попадают в код, который считывает сохраненную дату и сравнивает, чтобы увидеть, сколько дней в прошлом между этим дата и сегодня. Взгляните на компоненты метода NSCalendar: fromDate: toDate: параметры

Возможно, вы захотите выполнить поиск по «Выполнению расчётов календаря» в Xcode и прочитать итоговую главу.

Смежные вопросы