假设在应用中你有2个UIButton
,buttonA和buttonB。如果你想从这两个按钮调用FlipsideViewController
,那么唯一的区别就是背景图像。 (即:如果按下buttonA,BackGroundA将出现在FlipsideViewController
的视图中,否则,它将是BackGroundB。)
现在默认设置第一个BackGround(BackGroundA)。如果按下buttonB,我该如何处理第二个背景图像(BackGroundB)?
答案 0 :(得分:3)
根据您呈现FlipsideViewController的方式,有两种方法:
“background”可以是int或enum属性/参数,然后FlipsideViewController中的代码将根据该值执行自己需要的任何操作。
修改强>
要使用属性方法:
首先,在FlipsideViewController中,确保你有一个名为backgroundImageView
的UIImageView的IBOutlet。
接下来,在FlipsideViewController.h中,添加一个属性来设置背景(我使用的是int):
@interface FlipSideViewController : UIViewController {
int backgroundId;
}
@property (assign) int backgroundId;
接下来,在FlipsideViewController.m中,添加:
@synthesize backgroundId;
-(void)viewWillAppear:(BOOL)animated
{
if (backgroundId == 2)
self.backgroundImageView.image = [UIImage imageNamed:@"background2.png"];
else
self.backgroundImageView.image = [UIImage imageNamed:@"background1.png"];
}
最后,在主视图控制器中,按钮操作方法如下所示:
-(IBAction)buttonPressed:(UIButton *)sender
{
FlipSideViewController *fsvc = [[FlipSideViewController alloc] initWithNibName:nil bundle:nil];
fsvc.backgroundId = sender.tag; //assuming btn1.tag=1 and bnt2.tag=2
[self presentModalViewController:fsvc animated:YES];
[fsvc release];
}