Скрытие основного вида в контроллере разделения - PullRequest
0 голосов
/ 07 февраля 2012

Я новичок в разработке для iPad (или iPhone в этом отношении :)) и создаю приложение с Split View Controller.

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

Я знаю, что могу вернуть YES в splitViewController: shouldHideViewController: inOrientation:, и это прекрасно работает для первого экрана, но я хотел бы получить два представления, когда пользователь нажимает кнопку входа в систему и проверяются учетные данные.

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

Есть ли у вас какие-либо советы, чтобы сделать это? Должен ли я изменить свой подход к пользовательскому интерфейсу на что-то другое? Любые предложения приветствуются.

1 Ответ

0 голосов
/ 08 февраля 2012

с нуля это хорошая идея.Вы имеете больше контроля над тем, что происходит в IMO.На начальном этапе вы хотите добавить свой LoginViewController.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    self.loginController = [[LoginViewController alloc] initWithNibName:@"LoginViewController" bundle:nil];
    self.window.rootViewController = self.viewController;
    [self.window makeKeyAndVisible];
    return YES;
}

Позже, когда процесс аутентификации завершится, вы захотите продолжить работу с SplitView, верно?

- (void)continueWithSplitView {

    UINavigationController *leftNav = [[UINavigationController alloc] initWithRootViewController:self.masterViewController];
    UINavigationController *rightNav = [[UINavigationController alloc] initWithRootViewController:self.detailViewController];

    self.splitViewController.viewControllers = [NSArray arrayWithObjects:leftNav, rightNav, nil];
    self.view.window.rootViewController = self.splitViewController;
}

Обратите внимание, что в обоих методахжелаемый viewController устанавливается как свойство rootViewController в UIWindow.Это автоматически добавит представление вашего контроллера в качестве представления верхнего уровня в UIWindow.

Кроме того, убедитесь, что вы следуете шаблону MVC, например, объекту модели для вашей организации учетных данных.

...