gpt4 book ai didi

objective-c - GKTurnBasedMatchmakerViewController 适用于 iPad 但不适用于 iPhone

转载 作者:行者123 更新时间:2023-11-29 11:09:50 26 4
gpt4 key购买 nike

我们在这个问题上遇到了一段时间的麻烦,只是无法在文档或在线搜索中找到答案..

我们的 iOS 游戏基于 OpenGL ES,我们正在实现 GameCenter 回合制游戏。以下代码显示了用于创建回合制匹配的匹配 UI。此代码在我的 iPad 1 和 iPad 3 上运行良好。但是,它不适用于我的 iPhone 4S!

[更新:]我们在 View 层次结构的顶部使用了一个 UIWindow,一个 GL View /层作为 subview 。这会在新 View 出现时遮挡住它。我现在可以通过在主窗口中添加一个 UIView 并将 GL View 作为它的 subview 来查看此窗口。但是,我仍然无法与此 View 进行交互..

此代码来 self 们混合了 C++ 和 Objective-C 代码的 .mm 文件。

// Configure the match making view, with our own delegate
GKTurnBasedMatchmakerViewController *mmvc =
[[GKTurnBasedMatchmakerViewController alloc]
initWithMatchRequest:request];
mmvc.showExistingMatches = YES;


// Uses our own delegate.
if(!g_pTurnBasedDelegate)
{
g_pTurnBasedDelegate = [[TurnBasedDelegate alloc] init];
}

mmvc.turnBasedMatchmakerDelegate = g_pTurnBasedDelegate;

// Get the main window's root controller and instruct it to show the match making delegate.
if(g_Env && g_Env->m_pWindow)
{
RefPtr<WindowIOS> pIOSWin = ref_static_cast<WindowIOS>(g_Env->m_pWindow);

UIWindow * pUIWin = (UIWindow *)pIOSWin->GetHandle();
UIViewController * pController = [pUIWin rootViewController];


if(pController)
{
g_pRootViewController = pController;
}

}

if(g_pRootViewController)
{
[g_pRootViewController presentViewController:mmvc animated:YES completion:nil];
}

最佳答案

一段时间后回到这个问题。问题不在于 Game Center Controller ,而在于我们如何设置主应用程序 View 。这恰好适用于 iPad,但不适用于 iPhone。

对于我们的应用程序,我们需要在代码中初始化整个 View 层次结构,而不是使用 NIB/Storyboard。

我们原来的初始化步骤是:

  1. UIWindow init and make key.
  2. UIWindow addView (our OpenGL window).
  3. UIWindow addView (a touch responder UIView).
  4. UIWindow rootViewController = [[ViewController alloc] init];

将我们的 View 直接添加到 UIWindow 会妨碍 View Controller 的功能,并在 iPhone 和 iPad 上导致未定义的行为。

我们新的初始化步骤(解决这些问题,如果有人有的话):

  1. UIWindow init and make key.
  2. UIWindow rootViewController = [[ViewController alloc] init];
  3. rootViewController.view = [[GLAndTouchView alloc] init];

希望遇到同样问题的任何人都会发现这很有用。

关于objective-c - GKTurnBasedMatchmakerViewController 适用于 iPad 但不适用于 iPhone,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12048000/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com