2013-04-01 2 views
0

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

Сначала логин должен быть виден, после того, как перевернуто, регистр должен быть доступен!

Мой код

- (void)showLogin { 
    vcLogin = [[LoginViewController alloc] initWithNibName:@"LoginViewController" bundle:nil]; 
    [self.view addSubview:vcLogin.view]; 
    [self addChildViewController:vcLogin]; 

    if (IS_IPAD()) { 
     vcLogin.view.center = self.view.center; 
    } 
} 

- (void)showRegister { 
    vcRegister = [[RegisterViewController alloc] initWithNibName:@"RegisterViewController" bundle:nil]; 
    [self.view addSubview:vcRegister.view]; 
    [self addChildViewController:vcRegister]; 

    if (IS_IPAD()) { 
     vcRegister.view.center = self.view.center; 
    } 

    [vcLogin willMoveToParentViewController:nil]; 

    [self transitionFromViewController:vcLogin toViewController:vcRegister duration:0.5f options:UIViewAnimationOptionTransitionFlipFromLeft animations:^{} completion:^(BOOL finished) { 
     [vcLogin removeFromParentViewController]; 
     [vcRegister didMoveToParentViewController:self]; 
    }]; 
} 

Я также попытался с [UIView transitionFromView: ...] но результат тот же! Любые предложения? Благодаря!

+0

Я использовал [UIView transitionFromView: ...] несколько раз для subviews и работает, как ожидалось. Вы уверены, что рамка «from» view является лишь частью self.view.bounds? – Gabriel

ответ

0

Вы пробовали базовую анимацию? Вы можете использовать что-то вроде кода ниже и иметь один контроллер вида с подзонами.

[UIView transitionFromView:viewOne 
         toView:viewTwo 
         duration:1.0f 
         options:UIViewAnimationOptionTransitionFlipFromRight | UIViewAnimationOptionShowHideTransitionViews 
        completion:(^(BOOL finished){ 
    })];