我在查看翻转时遇到了一些麻烦。我在View Controller中有以下代码:
- (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时,视图被替换为空白视图(即我正在翻转的视图中没有显示)。
我有什么明显的遗失吗? (我怀疑有!)
答案 0 :(得分:2)
不是正面的,但我认为您需要使用'控制器'来翻转视图。看起来你正在使用其中一个翻转视图作为控制器。只需添加根控制器即可翻转视图。
这样的代码应该可以在根控制器上运行:
[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];
答案 1 :(得分:0)
根据变量名称,它看起来像是从XCode获得的默认“Utility”应用程序模板改编而来。如果模板项目有效,而你的模板没有,那么你显然已经改变了一些不应该有的东西: - )
机会是,控制器中应该指向视图的插座之一,不是。仔细检查您的笔尖,并检查调试器中的插座值。如果所有其他方法都失败了,请从模板重新开始,看看它何时停止工作。