私はストーリーボードを使用しました。このプロジェクトでは、ios 9、Xcode 7.2を使用して、Webサーバーのフェッチデータによるカレンダー表示とイベント表示を使用しました。 カレンダーキットのフレームワークを追加しました。また、私のプロジェクトを最初に2つ追加するプロジェクトはCKDemoViewController.hで、2番目はCKDemoViewController.mです。今回は静的イベントを作成します。しかし、私は動的なイベントを作成したい。どのようにそれが可能です。私は何度も試みましたが、動的なイベントを作成できませんでした。どのように可能です、ありがとう、助けてください。JSONによるイベントをMBCalendarKitに追加する方法
CKDemoViewController.m
#import "CKDemoViewController.h"
#import "NSCalendarCategories.h"
#import "NSDate+Components.h"
@interface CKDemoViewController() <CKCalendarViewDelegate, CKCalendarViewDataSource>
{
NSArray*date;
NSArray*title;
NSArray*img;
NSArray*des;
NSArray*evnt_ary;
NSArray*timeary;
}
@property (nonatomic, strong) NSMutableDictionary *data;
@end
@implementation CKDemoViewController
- (void)viewDidLoad
{
[super viewDidLoad];
NSURLRequest *req=[[NSURLRequest alloc]initWithURL:[NSURL URLWithString:@"http://edutimeapp.com/toshow/chamber-of-commerc/ws/fetch_event.php"]];
response =[[NSMutableData alloc]init];
[NSURLConnection connectionWithRequest:req delegate:self];
self.data = [[NSMutableDictionary alloc] init];
[self setDataSource:self];
[self setDelegate:self];
// An event for the new MBCalendarKit release.
NSString *title = NSLocalizedString(@"Release MBCalendarKit 2.2.4", @"");
NSDate *date = [NSDate dateWithDay: 12 month:11 year:2016];
CKCalendarEvent *releaseUpdatedCalendarKit = [CKCalendarEvent eventWithTitle:title andDate:date andInfo:nil];
// An event for the new Hunger Games movie.
NSString *title2 = NSLocalizedString(@"The Hunger Games: Mockingjay, Part 1", @"");
NSDate *date2 = [NSDate dateWithDay:21 month:11 year:2014];
CKCalendarEvent *mockingJay = [CKCalendarEvent eventWithTitle:title2 andDate:date2 andInfo:nil];
// Integrate MBCalendarKit
NSString *integrationTitle = NSLocalizedString(@"Integrate MBCalendarKit", @"");
NSDate *integrationDate = date2;
CKCalendarEvent *integrationEvent = [CKCalendarEvent eventWithTitle:integrationTitle andDate:integrationDate andInfo:nil];
// An event for the new MBCalendarKit release.
NSString *title3 = NSLocalizedString(@"Fix bug where events don't show up immediately.", @"");
NSDate *date3 = [NSDate dateWithDay:29 month:11 year:2014];
CKCalendarEvent *fixBug = [CKCalendarEvent eventWithTitle:title3 andDate:date3 andInfo:nil];
self.data[date] = @[releaseUpdatedCalendarKit];
self.data[date2] = @[mockingJay, integrationEvent];
self.data[date3] = @[fixBug];
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
[response appendData:data];
NSLog(@"error receving data %@",response);
}
-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
}
-(void)connectionDidFinishLoading:(NSURLConnection *)connection
{
NSError *error;
NSLog(@"Error in receiving data %@",error);
NSMutableDictionary *json = [NSJSONSerialization JSONObjectWithData:response options:NSJSONReadingMutableLeaves error:&error];
NSLog(@"response data %@",json);
NSArray *results = [json objectForKey:@"status"];
title = [[results valueForKey:@"event"]valueForKey:@"event_title"];
NSLog(@"event name fetch %@",title);
date =[[results valueForKey:@"event"]valueForKey:@"event_date"];
NSLog(@"event fetch %@",date);
img =[[results valueForKey:@"event"]valueForKey:@"img"];
des =[[results valueForKey:@"event"]valueForKey:@"event_detail"];
evnt_ary =[[results valueForKey:@"event"]valueForKey:@"event_name"];
timeary =[[results valueForKey:@"event"]valueForKey:@"event_time"];
}
#pragma mark - CKCalendarViewDataSource
- (NSArray *)calendarView:(CKCalendarView *)calendarView eventsForDate:(NSDate *)date
{
return [self data][date];
}
#pragma mark - CKCalendarViewDelegate
// Called before/after the selected date changes
- (void)calendarView:(CKCalendarView *)CalendarView willSelectDate:(NSDate *)date
{
}
- (void)calendarView:(CKCalendarView *)CalendarView didSelectDate:(NSDate *)date
{
}
// A row is selected in the events table. (Use to push a detail view or whatever.)
- (void)calendarView:(CKCalendarView *)CalendarView didSelectEvent:(CKCalendarEvent *)event
{
}
@end
でこの質問を解決しています
https://www.dropbox.com/home?preview=proj.zip
を動的なイベントを意味しますか?あなたはイベントをデータソースに保存していませんか? –
@JTAppleCalendarforiOSSwift動的イベントとは、Webサーバーの応答が日付とデータを取得してカレンダーにリロードする方法を意味します。 –
このリンクを参照してください:http://stackoverflow.com/questions/38408557/mbcalendar-kit-framework-how-to-add-in-my-project –