Как загрузить один и тот же UIVew с различными данными из списка таблиц? - PullRequest
2 голосов
/ 06 января 2012

У меня есть небольшой проект, в котором я пытаюсь составить список рецептов для игры.У меня UITableView работает отлично - единственная проблема в том, что я не знаю, как соединить каждую ячейку с DetailView.В настоящее время, если вы выбираете какую-либо из ячеек, она выполняет анимацию выделения и никуда не идет.

Я также не знаю, как лучше всего подойти к этому, используя новейший iOS5 SDK & Xcode 4.2.Я едва знаком с раскадровками, но я предполагаю, что должен быть более простой способ, чем создание 40 различных DetailView для каждого рецепта.

Я надеялся создать новый набор объектов Recipe.h / Recipe.m и хранить там все данные.Затем он может быть загружен в тот же шаблон DetailView, но информация будет меняться в зависимости от того, какой рецепт был выбран.Надеюсь, это имеет смысл?

Пожалуйста, дайте мне знать, если я смогу что-то уточнить.Я приложил исходный код моего проекта , если это будет полезно ... заранее спасибо!

1 Ответ

2 голосов
/ 06 января 2012

Прежде всего, добавьте этот кусок кода в MasterViewController.m,

#import "DetailViewController.h"

Затем откройте MainStoryboard.storyboard, затем выполните следующие действия:

  1. Добавьте UITableViewCell к представлению таблицы в MasterView.
  2. В инспекторе ячейки выберите стиль «Базовый» и присвойте его идентификатор «Ячейка».
  3. Control + щелкните ячейку и перетащите линию до DetailView и выберите параметр Push. Вы должны увидеть сюжетную игру. Дайте его идентификатор как "showDetail".
  4. Затем перейдите к MasterViewController.m и прокомментируйте следующий код в cellForRowAtIndexPath:

    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];

    Это потому, что вы уже получаете ячейку от

    UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier: CellIdentifier];

  5. Затем добавьте следующий код в MasterViewController.m

    -(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
    {
      if ([segue.identifier isEqualToString:@"showDetail"])
      {
        DetailViewController *dvc = segue.destinationViewController;
        NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
        [dvc setDetailItem:[self.harvestRecipeList objectAtIndex:indexPath.row]];
      }
    }
    

Сборка и запуск. Вам должно быть хорошо идти.

...