ios - 如何在 MBCalendarKit 中通过 JSON 添加事件

标签 ios objective-c iphone calendar mbcalendarkit

我使用了 Storyboard和 ios 9,Xcode 7.2,在这个项目中使用了日历 View 和通过网络服务器获取数据的事件显示。 我添加了日历工具包框架,还有两个文件添加我的项目,第一个是 CKDemoViewController.h,第二个是 CKDemoViewController.m,这次创建一个静态事件。但我想创建一个动态事件。那怎么可能。我尝试了很多次,但无法创建动态事件。怎么可能,请帮忙,谢谢。

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

我也在MBCalendar kit framework how to add in my project解决这个问题

关于ios - 如何在 MBCalendarKit 中通过 JSON 添加事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38434923/

相关文章:

ios - 我的协议(protocol)不工作

iphone - 听声音在 iPhone 模拟器上有效,但在设备上无效

iphone - UISplitViewController 无法更改主视图 Controller ?

ios - 像在 Facebook iOS 7 应用程序中一样获得漂亮的深色 UIToolbar 模糊

ios - 比较两个集合中的对象

ios - 在 UITextField 下放置一行的正确方法是什么

ios - 如何在ios中获取一个部分的行数

iOS View 不会显示标签和图像

ios - 在 UINavigationBar 上设置导航项时崩溃

iphone - 保存 UIImage,以错误的方向加载它