Проблема, Переворачивающая Представление - PullRequest
2 голосов
/ 25 марта 2009

У меня возникли проблемы с переключением вида. У меня есть следующий код в моем контроллере вида:

- (void)loadFlipsideViewController {
    ProblemViewFlipController *viewController = [[ProblemViewFlipController alloc] initWithNibName:@"ProblemViewFlip" bundle:nil];
    self.problemViewFlipController = viewController;
    [viewController release];
}


- (void) flipView {

    if (problemViewFlipController == nil) {
        [self loadFlipsideViewController];
    }

    UIView *mainView = self.view;
    UIView *flipView = problemViewFlipController.view;

    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:1];

    [UIView setAnimationTransition:([mainView superview] ? UIViewAnimationTransitionFlipFromLeft : UIViewAnimationTransitionFlipFromRight) forView:self.view cache:YES];

    if ([flipView superview])
    {
        [flipView removeFromSuperview];
        [self.view addSubview:mainView];
    }
    else
    {
        [mainView removeFromSuperview];
        [self.view addSubview:flipView];
    }

    [UIView commitAnimations];
}

Проблема в том, что когда я вызываю flipView, представление заменяется пустым представлением (то есть ничего в представлении, к которому я переворачиваюсь, не отображается).

Есть ли что-то очевидное, что я здесь упускаю? (Я подозреваю, что есть!)

Ответы [ 2 ]

2 голосов
/ 25 марта 2009

Не уверен, но я думаю, что вам нужно использовать «контроллер», чтобы перевернуть виды Похоже, вы используете один из перевернутых представлений в качестве контроллера. Просто добавьте корневой контроллер, чтобы перевернуть ваши взгляды.

Код, подобный этому, должен работать с корневого контроллера:

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:1];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.view cache:YES]; // self.view is the root controller's view
[mainViewController viewWillAppear:YES];
[flipViewController viewWillDisappear:YES];
[flipViewController.view removeFromSuperview];
[self.view  addSubview:mainViewController.view];
[flipViewController viewDidDisappear:YES];
[mainViewController viewDidAppear:YES];
[UIView commitAnimations];
0 голосов
/ 25 марта 2009

Судя по именам переменных, похоже, что это адаптировано из шаблона приложения Utility по умолчанию, который вы получаете из XCode. Если шаблонный проект работает, а ваш - нет, то вы, очевидно, изменили то, чего у вас не должно быть: -)

Скорее всего, один из выходов в вашем контроллере, который должен указывать на представление, - нет. Дважды проверьте свои Nib и проверьте значения выходов в отладчике. Если ничего не помогает, начните заново с шаблона и посмотрите, в какой момент он перестает работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...