Ios 从另一个类访问UI图像
我正在为道路安全编写一个应用程序,会有很多代码,所以我想我会将每个函数划分为一个类 现在我试图从另一个类设置主ViewController的背景,但是它不起作用。这是我尝试的代码: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
-(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
,第二个选项更改存储值。您需要使用对图像视图的引用更新第一行。