2016-04-18 11 views
0

Ich entwickle eine datumsbasierte Anwendung. Ich habe einen Kalender in meinem Swift-Projekt implementiert. Es funktioniert auf ios 8 perfekt, aber in ios 7 funktioniert nicht. Ich habe gerade MBCalendarKit in mein Swift-Projekt integriert. Es sollte eine Kalenderansicht in der ViewController sein. Sie können mein Projekt von diesem Link finden Calendar Integration Project Hier ist mein Grundcode. Ich denke, es sollte ein Kinder-Eltern-Navigationsproblem geben. Bitte helfen Sie mir, dieses Problem zu lösen.Wie kann ich MBCalendarkit in mein Swift-Projekt integrieren?

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

Was genau funktioniert nicht auf ios 7? –

+0

in ios 7 kann ich keinen kalender präsentieren aber in ios 8 präsentiert es sich sehr gut. und sogar ich habe keine Warnung oder Fehler bekommen. – kalpesh

+0

Haben Sie die von Ihnen verwendete PodFile überprüft? sagt es das -> Plattform: ios, '8.0'? Und auch, wenn Sie bedenken, dass MB Kalender so viele Probleme hat, warum verwenden Sie es in erster Linie. Warum nicht benutzen Sie die top aktualisierten? -> https://cocoapods.org/?q=calenda –

Antwort

0

Ab Version 5 erfordert MBCalendarKit iOS 8.0 oder höher. Wenn Sie nach iOS 7-Unterstützung suchen, können Sie versuchen, die Dateien direkt in Ihr Xcode-Projekt zu ziehen.

Version 5 enthält viele Verbesserungen für die Swift-Integration. Ich habe den Code auf Nullfähigkeit geprüft und gegebenenfalls NS_SWIFT_NAME() hinzugefügt.

Haftungsausschluss: Ich schrieb und pflege MBCalendarKit.

Verwandte Themen