我有一个方法在点击按钮时运行:
let tempVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("AwardViewController") as! AwardViewController
tempVC.currentDocumentPartTitle = currentDocumentPart.title
这是 AwardViewController 类,
class AwardViewController: UIViewController {
@IBOutlet weak var textView: UITextView!
var currentDocumentPartTitle: String!
override func awakeFromNib() {
super.awakeFromNib()
//assigning text to UITextView in awakeFromNib method
//In order to find right textfile, currentDocumentPartTitle is used to search right data in plist.
}
问题是,即使我传递变量,它也会在 awakeFromNib 方法中返回 nil 值错误,表示 currentDocumentPartTitle
为 nil。如何在调用 awakeFromNib 之前传递变量?
最佳答案
发生这种情况是因为 awakeFromNib()
在 View 的属性可分配之前执行。参见 https://stackoverflow.com/a/377390/1214800 .
为什么不直接在 viewDidLoad()
中做您需要做的事情呢?
override func viewDidLoad() {
super.viewDidLoad()
print(currentDocumentPartTitle!) // works!
}
关于ios - 初始化 View Controller 时传递变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35659815/