IBAction установить изображение UIImageview во втором View Controller? - PullRequest
1 голос
/ 09 декабря 2011

Я пытаюсь настроить что-то, где IBAction из view controller 1 установит изображение ImageView в View Controller 2's viewDidLoad, используя теги для различения нажатых кнопок .... Что-то вроде (не точнокод ... просто хэширование в моей голове):

в контроллере представления 1:

-(IBAction)buttonpressed:(id)sender {

if (button.tag == 1) {

ViewController2ImageView.image = [UIImage imageNamed:@"image1.png"];

}else if (button.tag == 2) {

ViewController2ImageView.image = [UIImage imageNamed:@"image2.png"];
}

в контроллере просмотра 2:

-(void)viewDidLoad {

ViewController2ImageView.image = [UIImage imageNamed:@"?.png"];
}

Проблема будетКак получить информацию из IBAction для передачи на второй контроллер представления, а метод viewDidLoad загрузит правильное изображение.

Я видел примеры преобразования данных в NSString и их передачи таким образом, однако мне действительно было интересно, есть ли лучший способ сделать это.

Я смог Google пройти через мой путьпока я собираю несколько приложений, но это заставило меня почесать голову в течение нескольких дней.

Любая помощь или предлагаемый код будут полезны!Даже если это просто толчок в правильном направлении.

Спасибо!

Ответы [ 3 ]

1 голос
/ 09 декабря 2011

Когда кнопка нажата в viewController1, сделайте что-то вроде этого:

-(IBAction)buttonpressed:(id)sender {
    if (button.tag == 1) {
        [[NSUserDefaults standardUserDefaults] setObject:@"image1.png" 
            forKey:@"viewController2SelectedImageKey"];
    } else if (button.tag == 2) {
        [[NSUserDefaults standardUserDefaults] setObject:@"image2.png" 
            forKey:@"viewController2SelectedImageKey"];
    } else {
        //set some default string for the image
        [[NSUserDefaults standardUserDefaults] setObject:@"yourDefaultImage.png" 
            forKey:@"viewController2SelectedImageKey"];
    }
}

Затем в вашем методе viewDidLoad в viewController2 выполните что-то вроде this :

- (void)viewDidLoad {
    ViewController2ImageView.image = [UIImage imageNamed:[[NSUserDefaults 
        standardUserDefaults] objectForKey:@"viewController2SelectedImageKey"]];
    //other setup
}

Этот код устанавливает строку для ключа в списке свойств NSUserDefaults (ключ, который я использовал, это @ "viewController2SelectedImageKey", но вы можете использовать любую понравившуюся строку), на которую ссылается viewController2 в своем методе viewDidLoad и использует эту строку в качестве имя файла изображения.

0 голосов
/ 09 декабря 2011

Привет. Вы можете сделать это просто со многими типами, как показано ниже. 1) можно написать метод

  • (id) initWithNibName: (NSString *) nibNameOrNil комплект: (NSBundle ) nibBundleOrNil иImageName: (NSString ) ImageName;

    записать этот метод во втором представлении и вызвать из первого представления, и когда этот метод вызывает в то время, сохраните это имя изображения во второй локальной переменной, как показано ниже

    • (id) initWithNibName: (NSString *) nibNameOrNil bundle: (NSBundle ) nibBundleOrNil иImageName: (NSString ) ImageName { self = [super initWithNibName: nibNameOrNil bundle: nibBundleOrNil]; if (self) { // Пользовательская инициализация // Назначение локальной переменной ImageName = имя_образ; } вернуть себя; }

, а затем передать его в коде ur означает, что в

  • (void) viewDidLoad { ViewController2ImageView.image = [UIImage imageNamed: imageName]; }

2) Второй тип - это создать imageName Varibale в представлении secound и дать @property и @synthesize, а затем использовать его ниже

 SecoundView *ObjSecoundView=[[ObjSecoundView alloc] initWithNibName:@"SecoundView" bundle:nil];
    ObjSecoundView.imageName=@"Image1.png";//put ur dynamic image name
    [self.navigationController  pushViewController:ObjSecoundView animated:YES];

передайте это и используйте в методе загрузки viewdid, как показано ниже

  • (void) viewDidLoad { ViewController2ImageView.image = [UIImage imageNamed: imageName]; }
0 голосов
/ 09 декабря 2011

Почему бы не использовать свойство NSString *imageName для передачи имени файла в View Controller 2?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...