大佬教程收集整理的这篇文章主要介绍了ios – 如何从Swift中的viewController类中分离dataSource和delegate?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
import UIKit class Datasource: NSObject,UITableViewDatasource,UITableViewDelegate { var movies = [String]() //MARK: - UITableViewDatasource func numberOfSectionsInTableView(tableView: UITableView) -> Int { return 1 } func tableView(tableView: UITableView,numberOfRowsInSection section: int) -> Int { return movies.count } func tableView(tableView: UITableView,cellForRowATindexPath indexPath: NSIndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCellWithIdentifier("cellIdentifier",forIndexPath: indexPath) as UITableViewCell cell.textLabel?.text = movies[indexPath.row] return cell } }
我的问题是:如果我想在Datasource类中使用属性或调用viewController类的方法,我该怎么办?例如,我想在用户选择单元格时调用presentViewController:
func tableView(collectionView: UICollectionView,didSELEctItemATindexPath indexPath: NSIndexPath) { //do something here presentViewController(viewController!,animated: true,completion: nil) }
class Datasource: NSObject,UITableViewDelegate { var movies = [String]() private var SELEctedCallBACk = ((NSIndexPath)->Void)? func SELEctedItemATindex(callBACk:(NSIndexPath) -> Void) { SELEctedCallBACk = callBACk } }
打回来:
func tableView(collectionView: UICollectionView,didSELEctItemATindexPath indexPath: NSIndexPath) { //do something here if let callBACk = SELEctedCallBACk { callBACk(indexPath) } }
使用:
datasource.SELEctedItemATindex() { [weak self] indexPath in // do something ... // presentViewController(viewController!,completion: nil) }
以上是大佬教程为你收集整理的ios – 如何从Swift中的viewController类中分离dataSource和delegate?全部内容,希望文章能够帮你解决ios – 如何从Swift中的viewController类中分离dataSource和delegate?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。