На самом деле есть другой ответ, который здесь не указан, но может быть очень полезным во многих случаях. Если вы не хотите использовать UINavigationController , то self.navigationItem
вам не подходит.
UIBarButtonItem *barButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"imageName"] style:UIBarButtonItemStyleBordered target:self action:@selector(action:)];
UINavigationItem *navigationItem = [[UINavigationItem alloc] initWithTitle:@"Bar Title"];
navigationItem.leftBarButtonItem = barButton;
[navigationBar pushNavigationItem:navigationItem animated:NO];
Возможно, вы захотите это при создании легковесного UIViewController с панелью и кнопками, но не хотите затрат на навигацию.
CI-серверы дают вам несколько преимуществ:
Некоторые из этих вещей могут вам не понадобиться сейчас , но уверены ли вы, что это не то, что вам может понадобиться в будущем?
... или и то, и другое. Айенде (создатель Rhino Mocks) сделала это недавно. Он написал CI-сервер с помощью PowerShell. Возможно, это даст вам новые идеи для обсуждения.
Я установил Hudson пару недель назад, чтобы заменить текущий сервер CruiseControl. Наибольшее преимущество, которое я вижу в Hudson, заключается в том, что его может использовать практически любой, в то время как запуск параметризованной сборки с помощью CruiseControl (или пакетного файла) по-прежнему пугает многих людей.
Обычно я обычно пишу все свои сценарии сборки с Ant (потому что он переносимый), вставьте пару параметров, и я вызываю их из Hudson.
Hudson дает вашим сценариям отличную видимость (все можно увидеть на первой странице), и они не требуют пояснений. Обычно при использовании сценария bash вам нужно написать файл readme (который никто не читает) и запомнить, где они находятся.
В течение года я пытался сохранить пользовательские письменные сценарии Python, чтобы сделать базовые вещи CI: получение уведомлений о коммитах по электронной почте, проверке и строительстве, отправляя обратно обвиняют и поздравляю, тогда, когда приехали, чтобы публиковать это для использования всех остальных в моей команде, оказалось непригодным для использования RaaaAther без мониторинга, веб-доступом и т. Д.
, тогда я погрузился в Buildbot и нашел это действительно Прекрасный. Я настроил в основном тот же процесс за пару дней. Сценарий сборки - это настоящий объект Python, который настроен на мастере, откуда он передается рабам и выполняется там. Построен на витой рамки, это много из коробки;)
веб-интерфейс Minimalistic, хотя и достаточен.
Ну, это неопубликовано, хотя я близок к нему на этот раз%)