我该如何调用这个函数?

问题描述:

我这么坚持,现在,我已经试过这接缝合乎逻辑的我,使这项工作,但有没有运气一切......我该如何调用这个函数?

我在一个单独的文件迅速得到这个:

进口基金会 进口UIKit

class MyViewController: UIViewController { 

    func background() { 
     var imageView : UIImageView 
     imageView = UIImageView(frame:CGRectMake(0, 0, 100, 300)); 
     imageView.image = UIImage(named:"bg.jpg") 
     self.view.addSubview(imageView) 
    } 
} 

我想调用它到一个单独的视图控制器文件。我这样做的原因是因为我可以在所有视图控制器中调用背景类,而且我不必在每个视图控制器中都执行相同的代码。

我试图调用它的方法是:

​​- 我得到错误Missing parameter for #1 in call

background() - 我得到错误Use of unresolved identifier 'background'

MyViewController() - 我不明白的错误,但没有任何反应。

我真的很感激它,如果有人能告诉我如何将这个函数调用到视图控制器中的ViewDidLoad部分。

谢谢。

你在吠叫错误的树。即使你可以在MyViewController中调用background方法,这仍然不会完成你要完成的任务,因为当你在“单独的视图控制器文件”中调用background时,self中的background方法将是其他视图控制器 - 所以你会把UIImageView放到其他的视图控制器的视图中,而不是这个视图控制器的视图。如果您希望能够在每个视图控制器中分别执行相同的操作,则需要在每个视图控制器中内部使用background方法。

做到这一点的方法是通过扩展注入background到的UIViewController本身,从所有的视图控制器继承:

extension UIViewController { 
    func background() { 
     var imageView = UIImageView(frame:CGRectMake(0, 0, 100, 300)) 
     imageView.image = UIImage(named:"bg.jpg") 
     self.view.addSubview(imageView) 
    } 
} 

现在的应用程式内视图控制器只能说self.background() (或简称background())来调用此方法。