2013-07-25 2 views
0

В настоящее время я разрабатываю SDK для iOS, который должен предоставить некоторые UIViewControllers для различных задач, и я изо всех сил стараюсь найти приятный дизайн.Создайте iOS SDK для отображения UIViewController

На мой взгляд, есть 3 возможных конструкций:

  1. Пусть пользователь в SDK экземпляр настроить экземпляр SDK UIViewController и пусть его/ее настоящее
  2. Обеспечить метод класса, чтобы показать UIViewController, который заботится о представлении и увольнении
  3. Реализовать Builder шаблон для настройки экземпляра целевого UIViewController, а затем либо дать пользователю возможность представить ViewController или вызвать шоу на Builder

У каждого из этих решений есть некоторые недостатки. В решении 1 я не могу знать, будет ли контроллер навигации использоваться для отображения контроллера (или если имеется панель навигации), и мне нужно будет реализовать некоторые пользовательские элементы для добавления кнопок и т. Д., Которые обычно можно найти в панели навигации.

Решение 2 не очень настраивается и требует, чтобы пользователь передал родительский UIViewController для отображения UIViewController.

Было бы здорово, если бы кто-нибудь мог указать мне ссылку или дать совет по этому вопросу. Благодаря!

ответ

0

Я думаю, что GameKit во время аутентификации является хорошим примером. Если аутентификация завершается неудачно в блоке обратного вызова, у вас будет возможность отобразить и экземпляр контроллера просмотра для регистрации или входа в игровой центр. Вот пример:

- (void) authenticateLocalPlayer 
{ 
    GKLocalPlayer *localPlayer = [GKLocalPlayer localPlayer]; 
    localPlayer.authenticateHandler = ^(UIViewController *viewController, NSError *error){ 
     if (viewController != nil) 
     { 
      [self showAuthenticationDialogWhenReasonable: viewController 
     } 
     else if (localPlayer.isAuthenticated) 
     { 
      [self authenticatedPlayer: localPlayer]; 
     } 
     else 
     { 
      [self disableGameCenter]; 
     } 
    }]; 
} 

Как вы можете видеть, что контроллер представления создаются рамками игрового центра, но решение для отображения и как (толчок, модальный и т.д.) даются на разработчик. Я думаю, это лучшее решение.

Смежные вопросы