HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios,swift:多个表,单个viewcontroller大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我见过类似的问题,但我对iOS很新,并且不太了解应用我的方案的答案.我正在制作一个包含核心数据的iPad应用程序,并且想要一个横向显示两个tableView的横向视图.我不知道如何从我的vc. swift文件中指定第二个tableView.此代码显示两个相同的表.编辑:我现在可以指定不同的表视图,但我不能发送不同的coredata到每个.问题似乎从DidLoad开始,它无法看到tableView,因此每次都必须获取所有数据.

数据来自同一个实体,它只有不同的属性(这就是为什么我用playerFetchrequest创建了一个带参数的函数 – 以为我可以用diff参数做出不同的获取请求):

import UIKit
import CoreData

class CustomTableViewCell : UITableViewCell {
    @IBOutlet var l1: UILabel?
    @IBOutlet var l2: UILabel?

    func loadItem(#number: String,name: String) {
        l1!.text = number
        l2!.text = name
    }
}

class ViewController: UIViewController,UITableViewDelegate,NSFetchedResultsControllerDelegate,UITableViewDatasource {

    @IBOutlet var tableView: UITableView!
    //this is my second table - Ive connected it in the IB to this VC
    @IBOutlet var tableView2: UITableView!

    let managedObjectContext = (UIApplication.sharedApplication().delegate as AppDelegatE).managedObjectContext
    var fetchedResultController: NSFetchedResultsController = NSFetchedResultsController()

    func playerFetchrequest(playerType: String) -> NSFetchrequest {
        let fetchrequest = NSFetchrequest(entityName: "Players")
        let sortDescriptor = NSSortDescriptor(key: "number",ascending: truE)
        let filterForWARDs = NSPreDicate(format: "%K = %@","type",playerTypE)
        fetchrequest.sortDescriptors = [sortDescriptor]
        fetchrequest.preDicate = filterForWARDs
        return fetchrequest
    }

    func getFetchedResultController(playerType: String) -> NSFetchedResultsController {
        fetchedResultController = NSFetchedResultsController(fetchrequest: playerFetchrequest("ForWARD"),managedObjectContext:managedObjectContext!,sectionNameKeyPath: nil,cachename: nil)
        return fetchedResultController
    }

    //remember: to create a table with multiple sections just implement the numberOfSectionsInTableView(_:) method
    func tableView(tableView: UITableView,numberOfRowsInSection section: int) -> Int {
        if let numberOfRowsInSection = fetchedResultController.sections?[section].numberOfObjects
        {return numberOfRowsInSection} else {return 0}
    }

    func tableView(tableView: UITableView,cellForRowATindexPath indexPath: NSIndexPath) -> UITableViewCell {
        var cell:CustomTableViewCell = self.tableView.dequeueReusableCellWithIdentifier("customcatell") as CustomTableViewCell
        let player = fetchedResultController.objectATindexPath(indexPath) as DataModel
        cell.l2?.text = player.lastName + "," + player.firstName
        cell.l1?.text = player.number
        return cell
    }

    func tableView(tableView: UITableView!,didDeSELEctRowATindexPath indexPath: NSIndexPath!) {
        tableView.deSELEctRowATindexPath(indexPath,animated: truE)
        println("You SELEcted cell #\(indexPath.row)!")
    }

    override func viewDidLoad() {
        var nib = UINib(nibName: "CustomTableViewCell",bundle: nil)
        tableView.registerNib(nib,forCellReusEIDentifier: "customcatell")
        fetchedResultController = getFetchedResultController("ForWARD")
        fetchedResultController.delegate = self
        fetchedResultController.performFetch(nil)
        super.viewDidLoad()
        // Do any additional setup after loading the view,typically from a nib.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
    func controllerDidChangeContent(controller: NSFetchedResultsController!) {
        tableView.reloadData()
    }
}

解决方法@H_450_8@
我想你应该这样检查一下
- (void)tableView:(UITableView *)tableView didSELEctRowATindexPath:(NSIndexPath *)indexPath    {
 if ([tableView isEqual: tableView1]) {
// Do something
  }

  else { // tableView == tableView2
// Do something else
  }
}

与tableview的其他方法类似.

大佬总结

以上是大佬教程为你收集整理的ios,swift:多个表,单个viewcontroller全部内容,希望文章能够帮你解决ios,swift:多个表,单个viewcontroller所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。