HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – Swift:从另一个viewcontroller调用函数使对象为零大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有两个简单的ViewController:第一个一个链接到UI ImageView的IBOutlet和一个设置图像alpha通道的函数.第二个控制器有一个按钮,当它被触发时,应调用该功​​能来设置alpha通道.

这是我的代码

class FirstViewController: UIViewController {

     @IBOutlet imageView: UIImageView! 

     func changeAlphaChAnnel() {
         imageView.alpha = 0.5
     }
}

class SecondViewController: UIViewController {

     let firstController = FirstViewController()

     @IBACtion func buttonPressed(sender: UIButton) {
         firstController.changeAlphaChAnnel()
     }
}

在FirstViewController中调用changeAlphaChAnnel()可以正常工作,但是如果我按下按钮调用它,则imageView变为零并且应用程序崩溃.
我怎样才能解决这个问题?
谢谢

解决方法

它的崩溃是因你的imageView是零.用FirstViewController()初始化firstController是行不通的.您必须从故事板加载该视图控制器.你可以这样做

let storyboard: UIStoryboard = UIStoryboard.init(name: "StoryboardName",bundle: nil)
let firstViewController: FirstViewController = storyboard.instantiateViewControllerWithIdentifier("StoryboardIdentifier") as! FirstViewController

updatE

现在,只有在实例化firstViewController的视图时才会设置firstViewController的IBOutlets,在您的情况下不会发生这种情况.你要做的是首先显示firstViewController的视图,然后调用你的函数.

大佬总结

以上是大佬教程为你收集整理的ios – Swift:从另一个viewcontroller调用函数使对象为零全部内容,希望文章能够帮你解决ios – Swift:从另一个viewcontroller调用函数使对象为零所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。