我有两个视图控制器,aController
和bController
。我在aController
中有一个按钮。现在我想从bController
更改按钮图像。我在chageButtonImg
中创建了一个名为aController
的方法,并在一些功能更改chageButtonImg
图像之后从bController
调用UIButton
方法。我打电话给它但按钮图像没有更新。
如何更改按钮图像?
答案 0 :(得分:0)
您无法更改按钮图像,因为问题是当您的bController视图出现时,aController中的所有ui元素都会自动设置为null。因此要实现此功能,请将变量中的图像传递给aController而不是viewwillAppear更改按钮的图像
答案 1 :(得分:0)
只需通过NSString将图像名称传递给第二个视图控制器:
- (IBAction)collagescreen:(id)sender
{
viewcontrollerB *bcontroller=[self.storyboard instantiateViewControllerWithIdentifier:@"collage"];
bcontroller.string=@"imagename here.jpg"
[self presentViewController:nav animated:YES completion:nil];
}
ViewController B.m文件你可以这样做
[btn setBackgroundImage:YourString forState:UIControlStateNormal];
答案 2 :(得分:0)
在具有按钮的控制器中创建公共属性imageName。 并在bController ---
if(count==[myArr count]){
HomeController *myH=[[HomeController alloc] init];
[myH.imageName = @"imButton.png";
return;
}
在控制器中---- 为按钮实现自定义getter
- (UIButton *) playAndPauseButton {
UIImage *img = nil;
if([_imageName isEqualToString:@“”]) {
img = [UIImage imageNamed:@"playButton"];
} else {
img = [UIImage imageNamed:_imageName]
}
[_playAndPauseButton setImage:icon];
return _playAndPauseButton;
}