ios - 初始化 View Controller 时传递变量

标签 ios variables uiviewcontroller

我有一个方法在点击按钮时运行:

   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/

相关文章:

ios - 由于加载时崩溃,Apple 拒绝了我的应用程序,我无法重现它。我应该怎么办?

java - 是否可以从junit测试中获取main方法中的变量?

c - C 中的点或 "reset"变量

设备中的 iPhone AudioUnitRender 错误 -50

ios - 为什么segue有缓慢的延迟

ios - 删除模型类时中止方法错误

javascript - 如何提高可读性? (将 php vars 传递给外部文件中的 javascript)

ios - 如何在 spritekit 场景上呈现 uiviewcontroller

ios - Segues 并从内存中清除历史 ViewControllers

ios - 无法分配类型为 '(String!, Bool, [AnyObject]!, NSError!)->Void to a value of type UIActivityViewControllerCompletionWithItemsHandler?' 的值