我现在非常困难,我已经尝试了一切对我来说合乎逻辑的工作但没有运气......
我在一个单独的swift文件中得到了这个:
导入基金会 导入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)
}
}
我想将其称为单独的视图控制器文件。我这样做的原因是因为我可以在我的所有视图控制器中调用后台类,而且我不必在每个控制器中执行相同的代码。
我尝试过的方式是:
MyViewController.background()
- 我收到错误Missing parameter for #1 in call
background()
- 我收到错误Use of unresolved identifier 'background'
MyViewController()
- 我没有收到错误但没有任何反应。
如果有人能告诉我如何将此功能称为我的ViewDidLoad'我真的很感激。部分在视图控制器中。
谢谢。
答案 0 :(得分:3)
background
方法,这仍然无法实现您要完成的任务,因为当您在“单独的视图控制器文件”中调用background
时,{{1}在self
方法中将是其他视图控制器 - 因此您将把UIImageView放入其他视图控制器的视图中,而不是这个查看控制器的视图。如果您希望能够在每个视图控制器中单独执行相同的操作,则需要在每个视图控制器内部使用background
方法。
这样做的方法是将background
通过扩展注入到UIViewController本身中,所有视图控制器都从该继承:
background
现在您应用中的任何视图控制器都可以说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()
)来调用此方法。