2016-04-18 6 views
0

Я разрабатываю приложение на основе даты. Я реализовал календарь в моем проекте Swift. Он отлично работает на ios 8, но в ios 7 не работает. Я только что интегрировал MBCalendarKit в мой проект Swift. Должно быть календарное представление в ViewController. Вы можете найти мой проект по этой ссылке Calendar Integration Project Вот мой базовый код. Я думаю, что должна быть проблема с родительской навигацией. Пожалуйста, помогите мне решить эту проблему.Как интегрировать MBCalendarkit в мой проект Swift?

class ViewController: UIViewController, CKCalendarViewDelegate, CKCalendarViewDataSource { 



var data : NSMutableDictionary 
var calendar = CKCalendarViewController() 
var newdata = CKCalendarView() 

required init(coder aDecoder: NSCoder) { 

    data = NSMutableDictionary() 
    super.init(coder: aDecoder) 
} 
override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: NSBundle?) { 
    self.data = NSMutableDictionary() 
    super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil) 
} 
override func viewDidLoad() { 
    super.viewDidLoad() 

    calendar.dataSource = self 
    //  self .addChildViewController(calendar) 
    //  self.view.addSubview(calendar.view) 
    //  calendar .didMoveToParentViewController(self) 
    //  targetController.view.superview.center = self.view.center; 

    self.parentViewController?.presentViewController(calendar, animated: true, completion: nil) 

    let title : NSString = NSLocalizedString("Add Swift Demo", comment: "") 
    let date : NSDate = NSDate(day: 14, month: 4, year: 2016) 
    let event : CKCalendarEvent = CKCalendarEvent(title: title as String, andDate: date, andInfo: nil) 
    self.data[date] = [event] 
} 
func calendarView(calendarView: CKCalendarView, willSelectDate date: NSDate) { 
    print("will select called") 
} 
func calendarView(calendarView: CKCalendarView, didSelectDate date: NSDate) { 

    print("didselect date called") 
    let ntview = noteview(nibName: "noteview", bundle: nil) 
    self.navigationController?.pushViewController(ntview, animated: true) 
    //self.navigationController?.popViewControllerAnimated(false) 
} 
func calendarView(calendarView: CKCalendarView!, eventsForDate date: NSDate!) -> [AnyObject]! { 

    return self.data.objectForKey(date) as [AnyObject]! 
} 
override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 
/* 
// MARK: - Navigation 

// In a storyboard-based application, you will often want to do a little preparation before navigation 
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
// Get the new view controller using segue.destinationViewController. 
// Pass the selected object to the new view controller. 
} 
*/ 

}

+0

Что именно не работает на ios 7? –

+0

в ios 7 я не могу представить календарь, но в ios 8 он присутствует очень хорошо. и даже я не получал никаких предупреждений или ошибок. – kalpesh

+0

Вы проверили Подфильтр, который используете? он говорит это -> платформа: ios, '8.0'? А также, учитывая, что в MB-календаре появилось так много проблем, почему вы используете его в первую очередь. Почему бы не использовать верхние обновленные? -> https://cocoapods.org/?q=calenda –

ответ

0

В версии 5, MBCalendarKit требует IOS, 8.0 или выше. Если вы ищете поддержку iOS 7, вы можете попробовать перетащить файлы прямо в проект Xcode.

Версия 5 добавляет много улучшений для интеграции Swift. Я проверил код для nullability и добавил NS_SWIFT_NAME(), где это необходимо.

Отказ от ответственности: Я написал и поддерживаю MBCalendarKit.

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