Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.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 设置视图控制器实例的UIImageView_Ios_Swift_Uiviewcontroller - Fatal编程技术网

Ios 设置视图控制器实例的UIImageView

Ios 设置视图控制器实例的UIImageView,ios,swift,uiviewcontroller,Ios,Swift,Uiviewcontroller,我目前正在尝试设置我定义的名为MyViewController的UIViewController类的UImageView。在MyViewController类中,我有一个UIImage的出口,如下所示: @IBOutlet weak var img: UIImageView? 然后,我尝试使用以下命令在另一个类中设置它: let vc:MyViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewContro

我目前正在尝试设置我定义的名为MyViewController的UIViewController类的UImageView。在MyViewController类中,我有一个UIImage的出口,如下所示:

@IBOutlet weak var img: UIImageView?
然后,我尝试使用以下命令在另一个类中设置它:

let vc:MyViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "test") as! MyViewController

   vc.imgView!.image = UIImage(named: "wonders1.png")
问题是当我强制展开时imgView为零,我不确定为什么,因为我正在实例化视图控制器

我的故事板图像:

我得到的错误是:

fatal error: unexpectedly found nil while unwrapping an Optional value

您正试图将图像添加到尚未初始化的UIImageView实例中,UIViewController实例上的视图仅在调用
func viewDidLoad()
函数后加载(有关iOS生命周期的详细信息,请参阅)

因此,为了完成任务,您应该在MyViewController中实现以下功能:

override func viewDidLoad() {
   super.viewDidLoad()
   vc.imgView.image = UIImage(named: "wonders1.png")
}

您正试图将图像添加到尚未初始化的UIImageView实例中,UIViewController实例上的视图仅在调用
func viewDidLoad()
函数后加载(有关iOS生命周期的详细信息,请参阅)

因此,为了完成任务,您应该在MyViewController中实现以下功能:

override func viewDidLoad() {
   super.viewDidLoad()
   vc.imgView.image = UIImage(named: "wonders1.png")
}

你能展示一个截图或描述你的故事板吗?并在故事板中显示uiviewcontroller类,以确保已将其更改为自定义类。只需添加图像,所有内容都应连接到正确的类,我还控制从UIImage拖动到MyViewController类以创建Outlet当您控制从imageView拖动到MyViewController时,自动生成的代码是否使用?或者一个!应该是@IBOutlet var imgView:UIImageView!然后,您可以使用imgView引用它,而无需展开。我重新定义了连接,并保留了自动生成的@IBOutlet var imgView:UIImageView!但是我仍然得到与上面相同的错误将属性
UIImage
添加到
MyViewController
,在
viewDidLoad()
,do
self.imgView!。image=myImageProperty
和do
vc.myImageProperty=UIImage(名为:“wonders1.png”)
。您可以显示屏幕截图或描述情节提要吗?并在故事板中显示uiviewcontroller类,以确保已将其更改为自定义类。只需添加图像,所有内容都应连接到正确的类,我还控制从UIImage拖动到MyViewController类以创建Outlet当您控制从imageView拖动到MyViewController时,自动生成的代码是否使用?或者一个!应该是@IBOutlet var imgView:UIImageView!然后,您可以使用imgView引用它,而无需展开。我重新定义了连接,并保留了自动生成的@IBOutlet var imgView:UIImageView!但是我仍然得到与上面相同的错误将属性
UIImage
添加到
MyViewController
,在
viewDidLoad()
,do
self.imgView!。image=myImageProperty
和do
vc.myImageProperty=UIImage(名为:“wonders1.png”)
。谢谢,唯一的问题是调用类是唯一知道图像名称的类,因此,我想我会在初始化MyViewController编辑时尝试找到一种方法来传递字符串变量:上面的注释解决了将meAdd image属性传递给控制器的问题,并对其进行设置,然后在ViewWillbeen中使用该image属性设置图像视图。谢谢,唯一的问题是调用类是唯一知道映像名称的类,因此,我想我会尝试找到一种方法,在初始化MyViewController编辑时传递字符串变量:上面的注释解决了这一问题,将meAdd image属性传递给控制器,并设置它,然后在ViewWillDisplay中使用该image属性设置图像视图。