Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/118.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Swift:无法在弹出窗口中修改图像_Ios_Swift_Xcode_Popup_Uikit - Fatal编程技术网

Ios Swift:无法在弹出窗口中修改图像

Ios Swift:无法在弹出窗口中修改图像,ios,swift,xcode,popup,uikit,Ios,Swift,Xcode,Popup,Uikit,初学者快速用户在这里。我想打开一个连接到主视图控制器的独立视图控制器(P2_Gift_pop_up)的弹出窗口。为此,我在主视图控制器的代码段中包含以下内容 let vc = P2_Gift_Pop_Up() vc.modalPresentationStyle = .overCurrentContext present(vc, animated: true, completion: nil) 这将开始在弹出窗口中运行代码(打印语句仍然有效),到目前为止,一切都很好 然而,当我试图修改视图中连

初学者快速用户在这里。我想打开一个连接到主视图控制器的独立视图控制器(P2_Gift_pop_up)的弹出窗口。为此,我在主视图控制器的代码段中包含以下内容

let vc = P2_Gift_Pop_Up()
vc.modalPresentationStyle = .overCurrentContext 
present(vc, animated: true, completion: nil)
这将开始在弹出窗口中运行代码(打印语句仍然有效),到目前为止,一切都很好

然而,当我试图修改视图中连接到视图控制器的某些元素时,我得到了一个

线程1:致命错误:在展开文件时意外发现nil 可选值。下面是完整的代码


虽然我(通过这个网站上的另一个答案)理解了msg的含义,但我不明白为什么我会在这种情况下得到它,以及如何修复它。还可能需要强调的是,尽管代码在P2\u Gift\u弹出调用后开始运行,但相应的视图不会显示。

您需要这样显示控制器(您需要设置脚本ID,然后将其添加到标识符中):


你的应用程序正在崩溃,因为你的按钮(Slot1)没有内存,所以你需要像上面那样显示。

你需要像这样显示你的控制器(你需要设置情节提要ID,然后将其添加到标识符中):


你的应用程序正在崩溃,因为你的按钮(Slot1)没有内存,所以你需要像上面那样演示。

@JogendarChoudhary告诉你该怎么做,但没有真正解释原因

当您使用创建您的
P2\u礼物时,会弹出

let vc = P2_Gift_Pop_Up()
您没有正确初始化它。它没有机会从它的XIB文件/故事板加载它的视图

假设在主应用程序情节提要中定义了视图控制器,则需要从情节提要加载视图控制器

您应该向情节提要中的视图控制器添加唯一标识符,然后使用该标识符加载它。(使用类的名称作为标识符是一个很好的选择。)

UIViewController类有一个属性
storyboard
,该属性将包含从中加载它的storyboard。通常,这是你的应用程序的主情节提要,也是你想要的。因此:

if let vc = storyboard?.instantiateViewController(withIdentifier: "P2_Gift_Pop_Up id") 
    as? P2_Gift_Pop_Up {
  vc.modalPresentationStyle = .overCurrentContext 
  present(vc, animated: true, completion: nil)
} else {
  print("error creating P2_Gift_Pop_Up")
}

@JogendarChoudhary告诉你该怎么做,但没有真正解释原因

当您使用创建您的
P2\u礼物时,会弹出

let vc = P2_Gift_Pop_Up()
您没有正确初始化它。它没有机会从它的XIB文件/故事板加载它的视图

假设在主应用程序情节提要中定义了视图控制器,则需要从情节提要加载视图控制器

您应该向情节提要中的视图控制器添加唯一标识符,然后使用该标识符加载它。(使用类的名称作为标识符是一个很好的选择。)

UIViewController类有一个属性
storyboard
,该属性将包含从中加载它的storyboard。通常,这是你的应用程序的主情节提要,也是你想要的。因此:

if let vc = storyboard?.instantiateViewController(withIdentifier: "P2_Gift_Pop_Up id") 
    as? P2_Gift_Pop_Up {
  vc.modalPresentationStyle = .overCurrentContext 
  present(vc, animated: true, completion: nil)
} else {
  print("error creating P2_Gift_Pop_Up")
}

这将在AppDelegate中生成errormsg:Thread 1:signal SIGABRT是否添加了情节提要ID?请将情节提要名称替换为“main”,并将控制器情节提要ID添加到中(使用标识符:“您的情节提要ID”)。我根据您的更改更新了代码,转到情节提要单击带有白色正方形的黄色小圆圈,并在身份检查器中添加“P2GIFTPOUPPID”,然后将“您的情节提要id”替换为“P2GIFTPOUPPID”。但同样的信息仍然存在。我把你的答案和邓肯的答案拼凑在一起。非常感谢。这将在AppDelegate中生成errormsg:Thread 1:signal SIGABRT是否添加了情节提要ID?请将情节提要名称替换为“main”,并将控制器情节提要ID添加到中(使用标识符:“您的情节提要ID”)。我根据您的更改更新了代码,转到情节提要单击带有白色正方形的黄色小圆圈,并在身份检查器中添加“P2GIFTPOUPPID”,然后将“您的情节提要id”替换为“P2GIFTPOUPPID”。但同样的信息仍然存在。我把你的答案和邓肯的答案拼凑在一起。非常感谢。它起作用了!谢谢你的解答和解释!它起作用了!谢谢你的解答和解释!