2012-01-28 51 views
2

我爲我的日曆應用程序創建了自定義日曆...但我遇到了一些問題,如果您幫助我這樣做,我將不勝感激,此代碼顯示一天。 例如2天,4,13,24創建自定義日曆表的一些問題iOS

- (NSString *) showPersianDay { 

    NSCalendar *persCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSPersianCalendar];  
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
    NSLocale *IRLocal = [[NSLocale alloc] initWithLocaleIdentifier:@"fa_IR"]; 
    [dateFormatter setLocale:IRLocal]; 
    [dateFormatter setCalendar:persCalendar]; 

    offsetComponents = [[NSDateComponents alloc] init]; 
    offsetComponents.day = _dayNumber; 

    NSDate *nextDate = [persCalendar dateByAddingComponents:offsetComponents toDate:[NSDate date] options:0]; 

    [dateFormatter setDateFormat:@"d"]; 
    NSString *currDay = [dateFormatter stringFromDate:nextDate]; 

    [NSString stringWithFormat:@"%@",currDay]; 

    [persCalendar release]; 
    [dateFormatter release]; 

    return currDay; 
} 

我創建了一個自定義表一個月,顯示了一個月的日子,所以,當這個數字用戶點按我的日期應該根據數字的變化,

enter image description here

例如今天是1月4日 - 當用戶水龍頭1月6日我的日期應更改爲1月6日

我沒有使用一些方法,如:day.text = @"6"或東西.. ..我需要d返回一個真實的DATE,如何修改我的代碼以顯示特定的日期? 謝謝。

+1

如何在水龍頭髮生時得到通知? – Allen 2012-02-02 22:44:01

回答

1

也許你應該讓這個類返回一個帶有多個鍵的NSDictionary。一個鍵可以包含日期編號的字符串值,另一個可以包含日期對象。

- (NSDictionary *) showPersianDay { 

    NSCalendar *persCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSPersianCalendar];  
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
    NSLocale *IRLocal = [[NSLocale alloc] initWithLocaleIdentifier:@"fa_IR"]; 
    [dateFormatter setLocale:IRLocal]; 
    [dateFormatter setCalendar:persCalendar]; 

    offsetComponents = [[NSDateComponents alloc] init]; 
    offsetComponents.day = _dayNumber; 

    NSDate *nextDate = [persCalendar dateByAddingComponents:offsetComponents toDate:[NSDate date] options:0]; 

    [dateFormatter setDateFormat:@"d"]; 
    NSString *currDay = [dateFormatter stringFromDate:nextDate]; 

    [NSString stringWithFormat:@"%@",currDay]; 
    NSDictionary *results = [NSDictionary dictionaryWithObjectsAndKeys:currDay,@"dateString",nextDate,@"DateObj" nil]; 

    return results; 
} 

然後在另一邊,您可以顯示dateString並在日曆單元格中緩存DateObj。希望這可以解決你的問題。

+0

請標記我是否回答了您的問題。謝謝 :) – MobileOverlord 2012-02-07 19:50:12