presentModalViewController无法正常工作?

时间:2010-01-11 13:58:09

标签: iphone

我在按钮操作中编码,如

  [UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:1.0];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:mainDelegate.window cache:NO];
[mainDelegate.window addSubview:[self.calcentryController view]];
[UIView commitAnimations];

它工作正常,但当我在calcentryController.m中使用一个动作

  [self presentModalViewController:self.weeklyScoreController animated:YES];

去另一个viewcontroller,它没有任何帮助吗?

4 个答案:

答案 0 :(得分:1)

您是否有任何理由未将presentModalViewController用于calcentryController?您可以将modalTransitionStyle上的calcentryController设置为UIModalTransitionStyleFlipHorizontal,然后使用presentModalViewController:animated代替手动制作动画。

这可能有用的原因是因为您的代码没有调用某些函数,例如viewWillAppear:viewDidAppear:等,而presentModalViewController:animated调用所有正确的函数来呈现新视图。< / p>

答案 1 :(得分:0)

您的weeklyScoreController可能是零。我不知道你在哪里创建它,因为代码块没有被粘贴,但这是我看到的常见错误。

答案 2 :(得分:0)

我可能是因为您的代码位于 viewDidLoad 而不是 viewDidAppear ,符合presentModalViewController does nothing

我遇到了同样的问题。

答案 3 :(得分:0)

如果你有一个深层次的视图控制器视图子视图,那么总是尝试立即显示viewcontroller,其视图直接添加到你的iPhone应用程序的窗口。

例如我有4个级别的视图 窗口&gt; vc1的观点&gt; vc2的观点&gt; vc3的观点

所以,当我试图调用[vc3 presentModalViewController]时,它无法正常工作.. 我不得不提出vc1并且它有效。我将vc1作为app delegate的属性引用,因此能够轻松访问。

但是,我仍然没有找到真正的原因,但我可以说这对我有用。