我的任务是通过单击FirstViewController上的按钮在SecondViewController中的UIImageView中设置背景图像。
FirstViewController.h:
#import <UIKit/UIKit.h>
#import "SecondViewController.h"
@class SecondViewController;
@interface ViewController : UIViewController
{
SecondViewController *secondViewData;
}
// pointer to second view
@property (nonatomic, strong) SecondViewController *secondViewData;
// buttons
- (IBAction)changeBack:(id)sender;
@end
FirstViewController.m中的按钮方法:
- (IBAction)changeBack:(id)sender {
SecondViewController *svc = [[SecondViewController alloc] init];
self.secondViewData = svc;
svc.back = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"1.png"]];
svc.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[self presentViewController:svc animated:YES completion:nil];
}
SecondViewController.h:
#import <UIKit/UIKit.h>
#import "FirstViewController.h"
@interface SecondViewController : UIViewController
@property (strong, nonatomic) IBOutlet UIImageView *back;
@end
返回 - 它是SecondViewController中的IBOutlet UIImageView。 我还在SecondViewController.m中导入了FirstViewController.h。 我试图将字符串传递给SecondViewController - 它在SecondViewController中的-ViewDidLoad中记录得很好,但是无法设置UIImageView。
答案 0 :(得分:2)
首先,请阅读Resource Management in View Controllers
我想,问题是首先你通过属性设置UIImageView,然后在模态控制器中加载视图时从xib设置它。
答案 1 :(得分:1)
你可以这样做。 您可以在secondviewcontroller.h中找到UIImageView的出口
IBOutlet UIImageView *imgView;
也属性并合成此
@property(nonatomic, retain) IBOutlet UIImageView *imgView;
在FirstViewController.xib中连接第二个ViewController的插座
在你的firstviewcontrollem.m中实现这个你要在secondViewController UIImageView中设置图像
self.secondViewData.imgView.image = [UIImage imageNamed:@"1.png"];
答案 2 :(得分:1)
这一行是问题所在:
svc.back = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"1.png"]];
您正在设置回新分配的图像视图,而不是它在IB中连接的图像视图。只需将该行更改为:
svc.back.image = [UIImage imageNamed:@"1.png"]];
答案 3 :(得分:1)
你需要在第二个视图控制器上拍摄另一个imageview。我将其命名为imgView.Let原始图像视图为bgView。
enter code here
//在secondviewcontroller.h
@property(非原子,强)IBOutlet UIImageView * bgView;
@property(非原子,强)IBOutlet UIImageView * imgView;
//在secondviewcontroller.m
//在viewDidLoad
self.bgView.image = self.imgView.image;
//在firstviewcontroller.m
//按钮动作应该是这样的
- (IBAction为)buttonPressed:(ID)发送方 {
SecondViewController *secondVC=[[SecondViewController alloc]initWithNibName:@"SecondViewController" bundle:nil];
secondVC.imgView=[[UIImageView alloc]initWithImage:[UIImage imageNamed:@"hue.png"]];
[self presentModalViewController:secondVC animated:YES];
}
试试这个。