初学者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.
}
答案 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.
}