Как получить идентификатор Segue - PullRequest
2 голосов
/ 17 декабря 2011

Я довольно занят, просто говорю это, прежде чем начать.

Я пытаюсь составить таблицу ячеек, и при прикосновении к ячейке отображается изображение в зависимости от того, к какой ячейке прикоснулись. Теперь я подумал, что будет способ определить, к какой ячейке прикоснулись, и соответственно установить изображение UIImageView, или я собираюсь иметь столько же представлений, сколько ячеек таблицы, и загружать сегменты? По сути, я пытаюсь получить идентификатор segue и использовать его для установки изображения UIImageView.

Ответы [ 2 ]

6 голосов
/ 17 декабря 2011

Вы можете получить идентификатор segue с помощью этого метода, который вызывается при нажатии на segue:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
  if ([segue.identifier isEqualToString:@"YourChoiseMadeInStoryboard"]) {
  ...
  //to access the destination ViewController do this
  AViewControllerClass *viewController = segue.destinationViewController;
  }
}
1 голос
/ 17 декабря 2011

UIStoryboardSegue предназначен для облегчения перехода между двумя экземплярами UIViewController. То, что вы пытаетесь сделать, совсем не требует сегментов. Вы хотите переключить изображение на ячейку, когда она нажата. Вам нужно только реализовать метод -tableView:didSelectRowAtIndexPath: на UITableViewDelegate.

Редактировать Я предполагаю, что у вас уже есть ивар для вашего UIImageView с именем imageView. Вам также понадобится ивар для NSArray, который содержит все изображения. Изображение в каждом индексе будет соответствовать каждой строке в таблице. Установите ваш массив где-нибудь как -viewDidLoad и предположите, что он называется imageArray.

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    // Get the cell at the selected index path
    UITableViewCell *selectedCell = [tableView cellForRowAtIndexPath:indexPath];

    // After being tapped, set the image view to some image
    self.imageView.image = [self.imageArray objectAtIndex:indexPath.row];
}
...