晚上好,
我正在尝试将数据从一个View Controller传递到另一个View Controller,但它会在最终的View Controller中崩溃我的程序。任何人都可以帮助我吗?
这是ViewController:
add_action('delete_attachment', 'DontDeleteMedia', 11, 1);
function DontDeleteMedia($postID)
{
if (!current_user_can('manage_options')) {
exit('You cannot delete media.');
}
}
这是PopUpViewController:
func updateAfterPlayAgain(){
labelSay.text = ">Result<"
scoreLabel.text = "Score: 0"
score = 0
seconds = 10
mainButton.isEnabled = true
userResult.isUserInteractionEnabled = true
}
当我(PopUpViewController)关闭时,我正试图从ViewController访问数据。我想在关闭PopUpViewController时更新ViewController中的信息。
谢谢。
答案 0 :(得分:2)
当调用prepareForSegue
时,目标视图控制器的视图尚未加载,因此它的所有插座都将为零。
将插座设置为隐式展开的选项,如果您尝试引用的插座为零,则会导致崩溃。这就是你崩溃的原因。
您不应该从prepareForSegue中调用updateAfterPlayAgain()
,因为它会在连接之前尝试引用您的商店。而是从updateAfterPlayAgain()
(或更好地从viewWillAppear
调用viewDidLoad
,因为只有在首次加载视图控制器的视图时才会调用一次。)
答案 1 :(得分:0)
@Banjo,你的问题并不完全清楚。请自行添加崩溃,以便我们提供更多信息帮助您。
从我看到的,当你创建一个屏幕时,@IBOutlet标签仍然是零,直到屏幕执行&#34; viewDidLoad&#34;因此,方法,而不是更新准备中的屏幕(对于segue),我使用布尔值设置一个标志,即:&#34; requiresUpdate:Bool&#34;,并在此处设置,然后在viewDidAppear,检查标志并调用updateAferPlayAgain。
如果您正在谈论解雇控制器并更新主控制器,您应该阅读有关如何使用&#34;展开segues&#34;并且处理它们的事件时,父控制器以这种方式获得所显示的控制器关闭的事件。
本文应该对您有所帮助: https://spin.atomicobject.com/2014/10/25/ios-unwind-segues/
祝你好运。