Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 翻转视图时出现问题_Iphone_Cocoa Touch - Fatal编程技术网

Iphone 翻转视图时出现问题

Iphone 翻转视图时出现问题,iphone,cocoa-touch,Iphone,Cocoa Touch,我在获取翻转视图时遇到一些问题。我的视图控制器中有以下代码: - (void)loadFlipsideViewController { ProblemViewFlipController *viewController = [[ProblemViewFlipController alloc] initWithNibName:@"ProblemViewFlip" bundle:nil]; self.problemViewFlipController = viewController

我在获取翻转视图时遇到一些问题。我的视图控制器中有以下代码:

- (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时,该视图将替换为空白视图(即,我要翻转的视图中不会显示任何内容)


这里有什么明显的我遗漏的吗?(我怀疑有!)

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

这样的代码应该在根控制器上工作:

[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];

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


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

这使我走上了正确的轨道-我在当前控制器上的视图和另一个控制器上的视图之间切换,而不是使用此控制器在其他两个控制器上的视图之间切换。干杯