-1

我的故事板中有两个视图控制器。

在第一个视图控制器中,有一个按钮-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];
}
4

1 回答 1

0

据我了解,您希望有两个由其视图控制器控制的单独视图。因此,您不希望每个都有两个 ImageView,而只需要一个。

请记住,您将拥有两个单独的对象,即视图控制器。您的代码看起来更多,您希望只有一个处理两种视图。那是行不通的。

为了完成这项工作,第一个视图控制器必须告诉第二个视图控制器它应该使用哪个图像。这要么通过

  • 使用从第一个 vc 发送到第二个 vc 的通知。请参阅NSNotificationCenter了解如何使用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;
于 2013-01-28T18:09:02.573 回答