【发布时间】:2015-10-06 05:17:33
【问题描述】:
我在尝试更改属于 Page 类(UIViewController 的子类)的标签文本时出现标题错误
@IBAction func StartButton(sender: AnyObject) {
for quote in quoteList {
var newPage = Page()
//error is on the next line:
newPage.Label.text = quote
pageArray!.append(newPage)
}
}
}
这是 Page 类:
class Page : UIViewController{
var index: Int = 0
var parent: PageArray?
override func viewDidLoad() {
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.
}
@IBOutlet weak var Label: UILabel!
@IBAction func previousButton(sender: AnyObject) {
}
@IBAction func gotoListButton(sender: AnyObject) {
}
@IBAction func nextButton(sender: AnyObject) {
}
}
对于快速编程和一般的 iO,我是新手;如果已经问过类似的问题,我深表歉意。我首先搜索,但没有找到适合我的解决方案。 我怀疑问题出在 newPage 的初始化上,并尝试了几种不同的方法,但我似乎无法做到正确。 我的问题是我到底做错了什么,我该如何解决?
编辑:让它像这样工作(工作是指不崩溃和什么都不做):
@IBAction func StartButton(sender: AnyObject) {
var pageArray: PageArray = PageArray()
for quote in quoteList {
var newPage = Page(nibName: "Page", bundle: nil)
if newPage.Label != nil {
newPage.Label.text = quote
}
pageArray.append(newPage)
}
}
现在看来可以肯定 newPage.Label 为 nil。
【问题讨论】:
-
我也有同样的问题。我尝试从@IBOutlet 中删除弱,但这无济于事。但是,所有非 IBOutlet 变量(例如索引、父级等)都是可访问的。它与这些对象如何从情节提要/XIB 文件中实例化(或不实例化)有关。还在挖。