Ios 从另一个类访问UI图像

Ios 从另一个类访问UI图像,ios,objective-c,xcode,xcode6,Ios,Objective C,Xcode,Xcode6,我正在为道路安全编写一个应用程序,会有很多代码,所以我想我会将每个函数划分为一个类 现在我试图从另一个类设置主ViewController的背景,但是它不起作用。这是我尝试的代码: -(void)StartBackgroundAnimation { ViewController *MainRoot = [[ViewController alloc] init]; MainRoot.BackgroundViewer.image = [UIImage imageNamed:@"Lunch_Backg

我正在为道路安全编写一个应用程序,会有很多代码,所以我想我会将每个函数划分为一个类

现在我试图从另一个类设置主ViewController的背景,但是它不起作用。这是我尝试的代码:

-(void)StartBackgroundAnimation
{
ViewController *MainRoot = [[ViewController alloc] init];
MainRoot.BackgroundViewer.image = [UIImage imageNamed:@"Lunch_Background.png"];
NSLog(@"ok");
 }
我所做的是创建了一个名为
StartBackgroundAnimation
的函数,导入了主视图控制器类,并从中创建了一个对象。之后,我将这个类导入到主视图控制器,并调用了这个函数,但是图像不起作用


注意:
NSLog
工作正常,函数被调用,但映像不会改变。

如果您确实想将函数存储在不同的类中,只需返回UIImage并在视图控制器中分配它即可

所以在自定义类中

- (UIImage*)backgroundImage{
 return [UIImage imageNamed:@"Lunch_Background.png"];
}
在主视图控制器内部:

self.view.backgroundView.image = [instanceofyourclass backgroundImage];

如果希望从类之外的类访问数据,通常最好在
Objective-C
中使用属性

// MyClass.h
@interface MyClass : Superclass
@property (strong, nonatomic) UIImage * backgroundImage;
@end
这样,您就可以在类内使用
self.backgroundImage
,在类外使用
anotherClass.backgroundImage
读取/写入属性


编辑:拼写…

为每个函数创建一个类是毫无意义的,你将有数千个类我知道,但这是主要问题:)当你这样做时,
ViewController*MainRoot=[[ViewController alloc]init]
您正在创建该控制器的另一个实例,它不是您正在查看的,因此我如何才能从另一个类更改图像我必须做什么?这不是那么容易,您可以在
ViewController
中创建一个要更改的函数,然后从第二个
ViewController
Hmm调用该函数。。您是否确实将
UIImageView
的image属性设置为
backgroundImage
?您可以在.m中插入一个函数,该函数将在
backgroundImage
属性更改时运行
-(void)setBackgroundImage:(UIImage*)image{myImageView.image=image;_backgroundImage=image;}
。这两条线都很重要。第一个选项将屏幕视图的图像设置为
image
,第二个选项更改存储值。您需要使用对图像视图的引用更新第一行。