【发布时间】:2017-05-29 09:48:42
【问题描述】:
我有 viewcontroller 和 subviewcontroller 我想将 self.name.text 从 subViewController changeIt 函数更改为内部 viewcontroller 给我
致命错误:在展开可选值时意外发现 nil (lldb)
我该如何解决它,我的代码在下面。
子视图控制器
import UIKit
import CoreData
class subViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
if prefs.string(forKey: "session") == "yes" {
let newname = prefs.string(forKey: "name")
ViewController().changeIt(name : newname)
}else{
}
}
}
视图控制器
import UIKit
import CoreData
class ViewController: UIViewController {
@IBOutlet weak var name: UITextField!
class func sharedInstance() -> ViewController {
struct Singleton {
static var sharedInstance = ViewController()
}
return Singleton.sharedInstance
}
override func viewDidLoad() {
super.viewDidLoad()
}
public function changeIt(name : String){
print("New Name \(name)") /// WORKS!!
self.name.text = "\(name)" /// GIVES FATAL ERROR
}
}
(*ViewController 也在 ContainerView 中)
【问题讨论】:
-
您是否从情节提要中连接了
name的插座?? -
ViewController()不会初始化视图。您需要从 XIB 或 Storyboard 加载视图 -
@BadhanGanesh 是已连接
-
@Vishnugondlekar 老兄这个我的视图控制器也在容器视图中