繁体   English   中英

在第二个 tableview 控制器上查看不同的统计信息

[英]Viewing different stats on 2nd tableview controller

初学者快速编码器。

我在我的视图控制器上创建了一个篮球队的表格视图。 之后,我为视图控制器创建了一个导航控制器。 我在桌面视图中输入了 7 个篮球队。 现在,我创建了第二个视图控制器,所以当我点击 7 个篮球队中的任何一个时,它会打开另一个窗口。

我的问题是,如何在点击不同的篮球队时显示不同的信息?

在此处输入图像描述主视图控制器

导入 UIKit 导入 AVFoundation

类 ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {

var nbaMusic: AVAudioPlayer = AVAudioPlayer()

let nbateams = ["Knicks", "Cavaliers", "Thunder", "Warriors", "Lakers", "Bulls", "Magic"]

@IBOutlet var myTableView: UITableView!
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return nbateams.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let myCell:UITableViewCell = myTableView.dequeueReusableCellWithIdentifier("nba", forIndexPath: indexPath)

    myCell.textLabel?.text = nbateams[indexPath.row]

    myCell.imageView?.image = UIImage(named: nbateams[indexPath.row])

    return myCell
}
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    let data = nbateams[indexPath.row]
    let playerView = playerViewController()
    detailView.dicData = data
    self.navigationController?.pushViewController(playerView, animated: true)

}

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
    myTableView.dataSource = self
    myTableView.delegate = self
    let nbaMusicURL = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("Roundball_Rock", ofType: "mp3")!)
    do{
        nbaMusic = try AVAudioPlayer(contentsOfURL: nbaMusicURL, fileTypeHint: nil)
    }
    catch  _ {
        return print("File not found")
    }
    nbaMusic.numberOfLoops = 0
    nbaMusic.prepareToPlay()
    nbaMusic.play()

类 playerViewController: UIViewController {

let knicks = ["Carmelo.png"]
let Cavaliers = ["Lebron.png"]

@IBOutlet var playerInfoView: UILabel!

@IBOutlet var playerImage: UIImageView!
var imageView: String?
var dicData: String?


override func viewDidLoad() {
    super.viewDidLoad()
    playerImage.image = UIImage(named: dicData!)

    // Do any additional setup after loading the view.
}

在 MainViewController: viewDidLoad 你设置更多:

myTableView.delegate = self

并实施:

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    let data = nbateams[indexPath.row]
    let playerView = playerViewController() // or load from storyboad
    playerView.dicData = data
    self.navigationController?.pushViewController(playerView, animated: true)
}

在 playerViewController 中创建一个数据对象,并将数据(信息需要显示)传递给它

@IBOutlet var playerInfoView: UILabel!



@IBOutlet var playerImage: UIImageView!
var imageView: String?
var dicData: String!

override func viewDidLoad() {
    super.viewDidLoad()
    playerImage.image = UIImage(named: dicData) // ex

    // Do any additional setup after loading the view.
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM