我在从其他viewController的viewController中执行功能时遇到问题
我有两个视图控制器,一个叫做
var RandomPeople = <?php echo json_encode($rows); ?>
和其他
ubicacionContainerViewController
所以我想从ubicacionContainerViewController调用reservaViewController中的函数
所以在ReservaViewController
中,我有以下代码:
ubicacionContainerViewController
我使用上面的代码在ReservaViewController中调用了一个函数,一切正常,它被称为
但是现在let storyboard: UIStoryboard = UIStoryboard.init(name: "Main", bundle: nil)
let reservaViewController: ReservaViewController =
storyboard.instantiateViewController(withIdentifier: "ReservaViewController") as!
ReservaViewController
reservaViewController.cambiarContainer()
中有这些按钮
ReservaViewController
和此功能:
@IBOutlet weak var btnSelectUbicacion: UIButton!
@IBOutlet weak var btnSelectServicio: UIButton!
@IBOutlet weak var btnSelectHora: UIButton!
@IBOutlet weak var btnConfirmacionReserva: UIButton!
问题是当我按下func cambiarContainer() {
self.btnSelectUbicacion.setBackgroundImage(#imageLiteral(resourceName:
"fondo_transparente"), for: .normal) // here is the error
self.btnSelectServicio.setBackgroundImage(nil, for: .normal)
self.btnSelectHora.setBackgroundImage(#imageLiteral(resourceName:
"fondo_transparente"), for: .normal)
self.btnConfirmacionReserva.setBackgroundImage(#imageLiteral(resourceName:
"fondo_transparente"), for: .normal)
}
中的一个按钮来调用时出现该错误。
我尝试使用“?”
ubicacionContainerViewController
现在一切正常,但一切正常,但问题是按钮的背景图像不起作用。没什么改变。
答案 0 :(得分:0)
您致电cambiarContainer
时,插座尚未连接,因此代码崩溃。
删除
reservaViewController.cambiarContainer()
并移动代码以将UI修改为viewDidLoad
func viewDidLoad() {
super.viewDidLoad()
self.btnSelectUbicacion.setBackgroundImage(#imageLiteral(resourceName: "fondo_transparente"), for: .normal) // here is the error
self.btnSelectServicio.setBackgroundImage(nil, for: .normal)
self.btnSelectHora.setBackgroundImage(#imageLiteral(resourceName: "fondo_transparente"), for: .normal)
self.btnConfirmacionReserva.setBackgroundImage(#imageLiteral(resourceName: "fondo_transparente"), for: .normal)
}
答案 1 :(得分:-1)
这里的问题是,您已经实例化了 ReservaViewController ,但尚未加载其视图,并且 cambiarContainer 方法调用了一个或多个(当前控制器插座);这就是为什么它向您指出引用为零。
通过添加以下行,尝试在调用 cambiarContainer 方法之前加载视图:
_ = reservaViewController.view