这是我的自定义UITableViewController,我添加了任何其他代码,并且委托方法被调用了五次
import UIKit
class SettingsViewController: UITableViewController {
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
print("numberOfSectionsInTableView called")
return 2
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
print("numberOfRowsInSection called for section => \(section)")
return 2
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = UITableViewCell(style: UITableViewCellStyle.Value2, reuseIdentifier: nil)
cell.textLabel?.text = "hey"
return cell
}
}
日志:
调用numberOfSectionsInTableView numberOfSectionsInTableView调用 numberOfRowsInSection调用section => 0 numberOfSectionsInTableView调用 numberOfRowsInSection调用section => 0 numberOfSectionsInTableView调用 numberOfRowsInSection调用section => 0 numberOfSectionsInTableView调用 numberOfRowsInSection调用section => 0 numberOfSectionsInTableView调用 numberOfRowsInSection调用section => 0
修改
它是我从appDelegate启动的唯一一个类:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
window = UIWindow(frame: UIScreen.mainScreen().bounds)
if let window = window {
let nav = UINavigationController()
nav.viewControllers = [Test()]
window.rootViewController = nav
window.makeKeyAndVisible()
}
return true
}
答案 0 :(得分:0)
表视图数据源方法可能会被多次调用。它无法保证被调用的次数。由于UITableView
的实现,有许多情况下某些委托/数据源方法将被调用两次或更多次,因为表视图必须刷新一些东西。这包括重新加载表格视图,更改表格标题视图等情况。因此,您可能希望在这种情况下检查您的实施!