Есть ли какой-либо предпочтительный подход к созданию многофакторных приложений в iOS? - PullRequest
3 голосов
/ 30 января 2012

Краткое введение

Я новичок в области разработки приложений на платформе iOS.В настоящее время я нуждаюсь в разработке мультивьювного приложения для iPhone и iPad.

Мои исследования

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

Моя проблема

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

-Изображения входа в систему (это самое первое представление, представляемое пользователю при открытии приложения) -Остальное приложение, которое должно перемещаться с помощью контроллера панели вкладок пользовательского интерфейса)

То, что я сейчас придумала, это идея:

Создайте пользовательский контроллер корневого представления.Этот контроллер корневого представления сначала представит пользователю вид входа в систему (добавив вид входа в систему как собственное подпредставление).После входа в систему следует изменить подпредставление на контроллер панели вкладок пользовательского интерфейса.

Актуальный вопрос

Тогда у меня вопрос, является ли это приемлемым подходом к выполнениюЭто?По сути, у меня был бы контроллер корневого представления, который переключается между представлениями, добавляя эти представления как свои собственные подвиды.

Я не смог найти ни одной статьи, в которой обсуждались бы приемлемые способы сделать это.И моя обеспокоенность в связи с моей нынешней идеей заключается в том, что наличие основного корневого контроллера представления, который в основном содержит все представления приложения и переключатели между ними, может быстро стать беспорядочным?* Заранее спасибо.

1 Ответ

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

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

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
    if ([self loginNeeded])
    {
        [self presentLoginScreen];
    }else
    {
        [self presentTabBarController];
    }

    [self.window makeKeyAndVisible];
    return YES;
}

И т. Е. PresentLoginScreen выглядит следующим образом:

- (void)presentLoginScreen
{
    SMLoginViewController* loginVC=[[SMLoginViewController alloc] initWithNibName:@"SMLoginViewController" bundle:[NSBundle mainBundle]];
    [self.window setRootViewController:loginVC];
    [loginVC release];
}

Аналогично, в [self presentTabBarController] я создаю UITabbarController, содержащий реальное приложение, а затемcall [self.window setRootViewController:tabbarController];

Это полезно, так как вы не расширяете, вы видите ненужную иерархию.

...