2014-09-26 38 views
0
func test(button:UIButton){ 

    var alarm = EKAlarm(relativeOffset: 20) 
    var event = EKEvent(eventStore: store) 
    event.title = "xxxx" 
    event.startDate = NSDate(timeIntervalSinceNow: 20) 
    event.endDate = NSDate(timeIntervalSinceNow: 1000) 
    event.calendar = calendarWithName(cal_name) 
    event.alarms = [alarm] 

    var ev = EKEventEditViewController() 
    ev.event = event 
    ev.eventStore = store 
    ev.editViewDelegate = self 
    ev.delegate = self 

    self.presentViewController(ev, animated: true, completion: nil) 
} 

func navigationController(navigationController: UINavigationController, willShowViewController viewController: UIViewController, animated: Bool) { 

    if (viewController.isKindOfClass(UITableViewController.self)){ 

     var tableview = (viewController as UITableViewController).tableView 

     println(tableview.numberOfSections()) 

     for i in 0...tableview.numberOfSections() { 

       println(tableview.cellForRowAtIndexPath(NSIndexPath(forRow: 0, inSection: i)) != nil) 

     } 
    } 
} 

我使用EKEventEditViewDelegate,該willShowViewController FUNC運行良好,我能夠得到正確的表格,但我不能得到第5和接下來的部分,什麼是錯的代碼,我該如何解決這個問題。無法獲取EKEventEditViewController權細胞

控制檯顯示:

8 

true 

true 

true 

true 

true 

false 

false 

false 

false 

回答

0

文檔說cellForRowAtIndexPath(_:)只返回可見細胞。

如果單元格不是 visible或indexPath超出範圍,則表示該表格單元的對象或nil。

https://developer.apple.com/Library/ios/documentation/UIKit/Reference/UITableView_Class/index.html#//apple_ref/occ/instm/UITableView/cellForRowAtIndexPath

+0

那麼如何禁用電池,其超出範圍 – six 2014-09-26 03:49:29

+0

爲了確保細胞是可見的,你可以使用的方法indexPathsForVisibleRows,這樣的事情: 讓indexPathsForVisibleRows = self.tableView.indexPathsForVisibleRows ()as [NSIndexPath] if find(indexPathsForVisibleRows,indexPath)!= nil {//做你的東西} – chroman 2014-09-26 03:56:16

+0

非常感謝!下次我會更仔細地看到doc! – six 2014-09-26 05:47:38