我该如何调用这个函数?
问题描述:
我这么坚持,现在,我已经试过这接缝合乎逻辑的我,使这项工作,但有没有运气一切......我该如何调用这个函数?
我在一个单独的文件迅速得到这个:
进口基金会 进口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()
)来调用此方法。