ios / iphone SDK лучшие практики управления формами - PullRequest
1 голос
/ 03 июня 2011

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

Какой лучший способ сохранить вещи СУХОЙ? Какие части этой реализации можно реализовать один раз и использовать повторно?

Когда кто-то нажимает на параметр настроек, который открывает новое представление, как я могу создать это представление и добавить текстовое поле в соответствии с типом данных (поле uitextfield, picker или что-то еще) в коде?

Ответы [ 2 ]

6 голосов
/ 03 июня 2011

Вы можете программно:

создать иерархию представлений

UIButton

UILabel

Вы поняли идею.

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

НТН.

1 голос
/ 03 июня 2011

Если у вас есть tableView, поток должен создать viewController из выбранных настроек в методе didSelectCell вашего делегата tableView и протолкнуть его через текущий контроллер навигации viewController.

вот пример:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    [self.navigationController pushViewController:[self settingsViewControllerAtIndexPath:indexPath] animated:YES];
}

, поэтому вам придется реализовать метод:

 - (UIViewController*)settingsViewControllerAtIndexPath:(NSIndexPath *)indexPath;

, который вернет viewController, управляющий настройками, связанными с выбранной строкой вашего корневого tableView.

Если ваши формы довольно статичны, вы должны рассмотреть возможность использования xib, чтобы минимизировать объем необходимого кода.это не идеальный ответ на ваше «как держать СУХОЙ», но достаточно аккуратный;)

Удачи.

...