代码之家  ›  专栏  ›  技术社区  ›  Codebeef

翻转视图时出现问题

  •  2
  • Codebeef  · 技术社区  · 16 年前

    - (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 回复  |  直到 16 年前
        1
  •  2
  •   Sophtware    16 年前

    不是肯定的,但我认为你需要使用“控制器”来翻转视图。看起来您正在使用其中一个翻转视图作为控制器。只需添加根控制器即可翻转视图。

    [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];
    
        2
  •  0
  •   Mark Bessey    16 年前

    基于变量名,这看起来像是根据从XCode获得的默认“实用程序”应用程序模板改编的。如果模板项目有效,而您的项目无效,那么您显然更改了一些不应该更改的内容:-)

    很可能,控制器中应该指向视图的一个插座没有。仔细检查NIB,并检查调试器中的输出值。如果所有其他操作都失败,请从模板重新开始,并查看它在什么时候停止工作。