Большая иерархия данных - как реализовать? - PullRequest
0 голосов
/ 19 сентября 2009

Я все еще пытаюсь разработать небольшое медицинское приложение для iPhone. : -] За последние несколько дней я структурировал все данные, которые должны отображаться в таблице. После прочтения книг и просмотра множества учебных пособий я создал несколько простых приложений для просмотра таблиц. Эти приложения всегда имели предопределенную глубину данных. Я не уверен, что вы понимаете, что я имею в виду, поэтому, пожалуйста, откройте следующие ссылки, чтобы сравнить мою графику:

Вы можете найти графику здесь!

Файл ierarchie1.png показывает обычную иерархию данных, которую я уже использовал в своих приложениях. Мои данные структурированы как в файле ierarchie2.png .

К сожалению, я не очень разбираюсь в разработке для iPhone. Моя идея состоит в том, чтобы создать для каждого раздела дерева собственный контроллер представления.

  • EintragA ViewController управляет 1 - 2 - 3
  • Eintrag1 ViewController управляет 1.1
  • Eintrag11 ViewController управляет 1.1.1 - 1.1.2 и т. Д. ...

Надеюсь, вы понимаете, о чем я.

Что я хотел бы знать, так это то, что моя идея - правильный подход для реализации такого рода данных? Или есть другой и лучший способ сделать это?

Ответы [ 2 ]

1 голос
/ 19 сентября 2009

Проверьте UINavigationController и образец " Навигационное приложение ", которое Xcode предлагает в качестве шаблона проекта.

По сути, каждый дочерний узел type (тип " Eintrag ") в вашем приложении будет подклассом UIViewController.

Ссылки на контроллеры представления помещаются в стек UINavigationController. Вы нажимаете и извлекаете ссылки для навигации по иерархии представлений.

В каждом контроллере представления, чтобы открыть другой дочерний узел, вы вызываете метод -pushViewController:animated на контроллере навигации, например ::

[self.navigationController pushViewController:eintragType1Instance animated:YES]; 

Обычно в верхнем левом углу окна приложения появляется кнопка «назад». Это вызывает "поп", программно эквивалентный:

[self.navigationController popViewControllerAnimated:YES];
0 голосов
/ 20 сентября 2009

Ваша мысль имеет смысл, если для каждого вида дерева все узлы любого уровня принадлежат к одному и тому же типу, поэтому ячейки таблицы в EintragA, раздел 1, являются теми же типами ячеек, которые используются в EintragA, раздел 2.

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

...