我有一个包含运动清单的表格视图,我想为每个单元打开相应的团队页面。在我的团队页面中,我有一个标签,它可以根据您从运动列表中按下的单元格来更改文本。我正确地从segue中传递了字符串,并且我的打印行显示该字符串正确。但是,当我尝试设置标签文本时,出现“意外找到nil”错误。我的标签已正确连接到IB中并被实例化。看起来很简单,但一直困扰着我。
这是我的运动列表控制器segue:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "showTeamPage"{
let teamViewController: TeamPage = segue.destinationViewController as! TeamPage
teamViewController.teamSport = sport
}
// Get the new view controller using [segue destinationViewController].
// Pass the selected object to the new view controller.
}
这是TeamPage()代码:
import UIKit
import Social
import CloudKit
class TeamPage: UITableViewController, UITableViewDelegate, UITableViewDataSource, UICollectionViewDelegate, UICollectionViewDataSource, UIAlertViewDelegate {
@IBOutlet weak var sportTitle: UILabel!
var teamSport: String!
override func viewDidLoad() {
super.viewDidLoad()
self.sportTitle = UILabel()
println(teamSport)
self.sportTitle.text = teamSport
println(sportTitle.text)
}
我快疯了...
最佳答案
我认为编译器很困惑,因为您正在重新初始化标签。我的猜测是,当您拨打电话self.sportTitle = UILabel()
时,ARC会启动以杀死sportTitle UILabel!您是通过情节提要连接完成的。然后,由于某种原因,self.sportTitle.text = teamSport
尝试设置nil的文本(因为由于上一步而被销毁)。
要解决此问题,请删除self.sportTitle = UILabel()
。不用了