我最近使用Apple的Utility Application示例项目启动了一个项目。在示例项目中,有一个显示FlipSideView实例的信息按钮。如果你知道Weather.app,你知道按钮的作用是什么。
然后我将MainWindow.xib更改为在窗口中间包含一个滚动视图,在窗口底部包含一个页面控制视图(再次,如Weather.app)。 scrollview充满了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,以便您能够看到整个项目。
感谢您的帮助!
- Ry
编辑:我认为这可能与我将UIViewController的视图插件附加到UIWindow实例有关。我现在将它连接到UIView,它运行得非常好。
答案 0 :(得分:2)
为了记录,答案已添加到问题中。莱伊斯特说:
我认为这可能与我有关 附加UIViewController的视图 UIWindow实例的出口。我现在 将它连接到UIView,就是这样 工作得很好。