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

时间:2015-11-11 03:35:16

标签: ios swift tableview

初学者swift编码器。

我在视图控制器上创建了篮球队的桌面视图。之后,我为视图控制器创建了一个导航控制器。我参加了7个篮球队的表格。现在,我已经创建了第二个视图控制器,这样当我点击7个篮球队中的任何一个时,它将打开另一个窗口。

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

在此处输入图片说明Main View controller

导入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()

class 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.
}

1 个答案:

答案 0 :(得分:0)

在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.
}