2011-09-07 59 views
0

如何使用iPhone的日历创建事件,从UITextField获取开始日期和结束日期?根据文本字段中的日期创建活动

+0

你的意思是'UITextField'吗?文本如何进入“UILabel”? – Mundi

+0

哎呀,对不起,UITextField! – pixelbitlabs

+0

可能重复[在UITextField的日历中创建新事件?](http://stackoverflow.com/questions/7322184/create-new-event-in-calendar-from-uitextfield) –

回答

1

要以编程方式添加事件,请阅读Apple的Event Kit Programming Guide。也许你想通过使用EKEventViewController来让自己更容易,但是你也可以在代码中做所有事情。

要将NSString从文本字段的text属性转换为NSDate,您将必须使用NSDateFormatterclass documentation中有很好的例子。

+0

可以提供一些示例代码,因为我有点失落? :|谢谢! – pixelbitlabs

0
//create an EKEventEditViewController to display the event view controller. 

EKEventEditViewController *addController = [[EKEventEditViewController alloc] initWithNibName:nil bundle:nil]; 

//set eventstore global reference 

addController.eventStore = self.eventStore; 

// present EventsAddViewController as a modal view controller 
[self presentModalViewController:addController animated:YES]; 

// assign <EKEventEditViewDelegate> to view controller 
    addController.editViewDelegate = self; 
[addController release]; 

//====================================================================== 

//Add delegate methods 

- (void)eventEditViewController:(EKEventEditViewController *)controller 
    didCompleteWithAction:(EKEventEditViewAction)action { 

NSError *error = nil; 
EKEvent *thisEvent = controller.event; 

switch (action) { 
    case EKEventEditViewActionCanceled: 
     // Edit action canceled, do nothing. 
     break; 

    case EKEventEditViewActionSaved: 
     // When user hit "Done" button, save the newly created event to the event store, 

     [controller.eventStore saveEvent:controller.event span:EKSpanThisEvent error:&error]; 
     break; 

    case EKEventEditViewActionDeleted: 
     // When deleting an event, remove the event from the event store, 

     [controller.eventStore removeEvent:thisEvent span:EKSpanThisEvent error:&error]; 
     break; 

    default: 
     break; 
} 
// Dismiss the modal view controller 
[controller dismissModalViewControllerAnimated:YES]; 

} 

// Set the calendar edited by EKEventEditViewController to our chosen calendar - the default calendar. 

- (EKCalendar *)eventEditViewControllerDefaultCalendarForNewEvents:(EKEventEditViewController *)controller 
{ 
EKCalendar *calendarForEdit = self.defaultCalendar; 
return calendarForEdit; 
} 
相关问题