我的故事板中有两个视图控制器。
在第一个视图控制器中,有一个按钮-A,它有动作-A。 当我在第一个视图控制器中按下按钮A时,它在第二个视图控制器中显示A的图像。
我在viewcontroller.h文件中声明了action-A,并在viewcontroller.m文件中实现actionA。 然后我在第一个视图控制器的First Responder上连接action-A和button-A。
当我测试这个应用程序时,我点击按钮-A但它没有进入动作-A。
我在哪里犯了什么错误? 我刚开始学习iOS,我不是专业人士。 请帮帮我,我该怎么办?
在viewcontroller.h中
@interface ViewController : UIViewController
{
IBOutlet UIPageControl *pagecontrol;
IBOutlet UIImageView *imageview1;
IBOutlet UIImageView *imageview2;
UIImageView *tempimageview, *bgimageview;
}
@property (nonatomic,retain) UIPageControl *pagecontrol;
@property (nonatomic,retain) UIImageView *imageview1;
@property (nonatomic,retain) UIImageView *imageview2;
- (IBAction) ButtonA_Click:(UIButton *)sender;
在viewcontroller.m
中@implementation ViewController
@synthesize imageview1;
@synthesize imageview2;
@synthesize pagecontrol;
- (IBAction) ButtonA_Click:(UIButton *)sender;
{
[imageview1 setImage:[UIImage imageNamed:@"MyImage.jpg"]];
tempimageview = imageview2;
[imageview1 setHidden:NO];
[imageview2 setHidden:YES];
}
答案 0 :(得分:0)
据我所知,您希望视图控制器控制两个单独的视图。因此,您不希望每个ImageView都有两个,但只有一个。
请记住,您将拥有两个单独的对象,即视图控制器。您的代码看起来更多,您希望只有一个代码处理两个视图。这不起作用。
为了使这项工作,第一个视图控制器必须告诉第二个视图控制器它应该使用哪个图像。这可以通过
工作使用从第一个vc发送到第二个vc的通知。有关如何使用addObserver...
和postNotification
或在第一个vc中拥有第二个vc的属性,您将在创建视图期间设置该属性。最后,您需要一些方法,两个视图控制器都可以相互通信。
另外,请不要声明这些网点是私密的;从括号中删除它们并写下:
@interface ViewController : UIViewController
{
UIImageView *tempimageview, *bgimageview;
}
@property (nonatomic,retain) IBOutlet UIPageControl *pagecontrol;
@property (nonatomic,retain) IBOutlet UIImageView *imageview1;
@property (nonatomic,retain) IBOutlet UIImageView *imageview2;