- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直收到与我使用 iAd 的 GKTurnBasedMatchmakerViewController 和 BannerViewController 有关的警告。该警告是:
Presenting view controllers on detached view controllers is discouraged <RootViewController: 0x14cd143c0>
下面显示的导致此警告的代码序列有什么问题?
在 AppDelegate.h 中
@interface AppDelegate : NSObject <UIApplicationDelegate> {
UIWindow *window;
RootViewController *viewController;
}
在 AppDelegate.m 中
- (void) applicationDidFinishLaunching:(UIApplication*)application {
viewController = [[RootViewController alloc] initWithNibName:nil bundle:nil];
[window setRootViewController:viewController];
[window addSubview: viewController.view];
}
然后,当用户在我的主屏幕上按下播放按钮时,我首先按如下方式打开游戏中心 View Controller (注意第 2 行将 presentingViewController 设置为等于在 appDelegate 中设置的 rootViewController):
AppDelegate * theAppDelegate = (AppDelegate *) [UIApplication sharedApplication].delegate;
self.presentingViewController = theAppDelegate.viewController;
GKTurnBasedMatchmakerViewController *mmvc = [[GKTurnBasedMatchmakerViewController alloc] initWithMatchRequest:request];
[presentingViewController presentViewController: mmvc animated: YES completion:nil];
以上代码运行后,加载了一个新的场景。这个场景在我的GameSelectionLayer.h中是这样描述的:
@interface GameSelectionLayer : CCLayer <InAppStoreControlLayerDelegate> {
...
RootViewController *viewController;
AppDelegate *app;
BannerViewController *bannerViewController;
}
然后在我的 GameSelectionLayer.mm 中,我按如下方式加载 bannerViewController onEnter:
-(void)onEnter {
[super onEnter];
app = (AppDelegate *)[[UIApplication sharedApplication] delegate];
viewController = [(AppDelegate *)[[UIApplication sharedApplication] delegate] viewController];
bannerViewController = [[BannerViewController alloc] initWithContentViewController:viewController];
app.window.rootViewController = bannerViewController;
}
当上面的代码运行时,我收到上面提到的警告。请让我知道您认为我可能做错了什么导致了这个警告。
最佳答案
问题是您正在替换一个 View Controller 的 View 层次结构,该 View Controller 显示了另一个 View Controller 。当您尝试从未附加到窗口或没有附加到窗口的后代 View Controller 的 View Controller 呈现 View Controller 时,会出现“分离”警告。
这里我推荐两种方法。在替换 Root View Controller 之前关闭所有 View Controller ,或者,在这两个选项中选择更好的一个,使用另一个具有自己的 Root View Controller 层次结构的窗口。
另外,请注意,您不应将 View Controller 的 View 添加为窗口的 subview 。当您将 View Controller 设置为 Root View Controller 时,系统会为您完成。
关于ios - View 层次结构不正确 : Presenting view controllers on detached view controllers is discouraged,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24561754/
我正在尝试将多个水平链接的 Button 和 TextView 垂直链接为 View 集,但仍保持平面 View 层次结构。这是我的初始布局和代码:
到目前为止,我已经在Google BigQuery上训练了几种模型,目前我需要查看模型的外观(即架构,损失函数等)。 有没有办法获取这些信息? 最佳答案 仔细阅读文档后,我可以说该功能尚不存在。我什至
本文实例讲述了PHP实现二叉树深度优先遍历(前序、中序、后序)和广度优先遍历(层次)。分享给大家供大家参考,具体如下: 前言: 深度优先遍历:对每一个可能的分支路径深入到不能再深入为止,而且每个
我是一名优秀的程序员,十分优秀!