UIViewController presentModalViewController:动画:啥都不做?

Posted

技术标签:

【中文标题】UIViewController presentModalViewController:动画:啥都不做?【英文标题】:UIViewController presentModalViewController: animated: doing nothing?UIViewController presentModalViewController:动画:什么都不做? 【发布时间】:2010-04-18 15:29:11 【问题描述】:

我最近开始了一个项目,使用 Apple 的 Utility Application 示例项目。在示例项目中,有一个显示 FlipSideView 实例的信息按钮。如果您了解 Weather.app,您就会知道按钮的作用。

然后我将 MainWindow.xib 更改为在窗口中间包含一个滚动视图,在窗口底部包含一个页面控制视图(再次,就像 Weather.app)。滚动视图充满了 MainView 的实例。然后,当我单击信息按钮时,FlipSideView 会显示,但仅在 MainView 实例之前填充的区域中显示——这意味着当 FlipSideView 实例加载时,页面底部的页面控制视图仍然显示。

所以,我想我会简单地为最顶层的窗口添加一个 UIViewController,它是在与项目一起创建的 AppDelegate 中声明的那个。所以,我创建了一个 UIViewController 的子类,将它的一个实例放在 MainWindow.xib 中,并将它的视图出口连接到在应用程序委托中声明为窗口的 UIWindow。我还更改了按钮的操作,以便它知道向 MainWindowController 实例发送消息。确实发送了消息(我检查了 NSLog() 语句),但未显示 FlipSideView。这是相关的 (?) 代码:

FlipsideViewController *controller = [[FlipsideViewController alloc] initWithNibName:@"FlipsideView" bundle:nil];
controller.delegate = self;

controller.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:controller animated:YES];

[controller release];

为什么这在 MainWindowController 内部不起作用,但完全相同的代码在 MainViewController 内部起作用?我已经上传了整个项目here,让你可以看到整个项目。

感谢您的帮助!

--瑞

编辑:我认为这可能与我将 UIViewController 的视图插座附加到 UIWindow 实例有关。我现在将它连接到 UIView,它运行良好。

【问题讨论】:

【参考方案1】:

为了记录,答案已添加到问题中。里斯特说:

我认为这可能与我有关 附加 UIViewController 的视图 出口到 UIWindow 实例。我现在 将它连接到 UIView,它是 工作得很好。

【讨论】:

以上是关于UIViewController presentModalViewController:动画:啥都不做?的主要内容,如果未能解决你的问题,请参考以下文章

从另一个 UIViewController 呈现 UIViewController

使用 IBAction UIViewController 弹出 UIViewController

子 UIViewController 视图阻止容器 UIViewController 视图接收触摸事件

允许在下面呈现的 UIViewController 上的 UIViewController 上进行交互

在另一个 UIViewController 中显示一个 UIViewController

UIViewController 拥有另一个 UIViewController