2010-11-02 3 views
1

Предположим, что в приложении у вас есть 2 UIButton 's, buttonA и buttonB. Если вы хотите позвонить FlipsideViewController с этих 2 кнопок, где единственной разницей будут фоновые изображения. (то есть: если нажата кнопка A, BackGroundA появится на дисплее FlipsideViewController, в противном случае это будет BackGroundB.)Как изменить фоновое изображение?

Теперь первый BackGround (BackGroundA) установлен по умолчанию. Как обрабатывать второе фоновое изображение (BackGroundB), если нажата кнопка B?

ответ

3

В зависимости от того, как вы представляете FlipsideViewController, несколько способов являются:

  • Make «фон» свойство FlipsideViewController и установить его по мере необходимости в способе действия каждой кнопки перед показом ок.
  • Добавьте собственный метод инициализации в FlipsideViewController с параметром «background».

«фон» может быть свойством/параметром int или enum, а затем код в FlipsideViewController будет делать все, что ему нужно, на основе этого значения.

Edit:
Чтобы использовать свойство подход:

Во-первых, FlipsideViewController, убедитесь, что у вас есть IBOutlet для UIImageView называется сказать backgroundImageView.

Далее в 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]; 
} 
+0

Я попытался объявить UIImage, но ther e не метод Как «setBackground» или что-то вроде этого есть конкретный код? –

+0

Как устанавливается «Первый фон» по умолчанию? – Anna

+0

Я использовал вид изображения из конструктора интерфейса и установил его обратно –

Смежные вопросы