Ios5 从Cocos2d(2.0)使用UIReferenceLibraryViewController

Ios5 从Cocos2d(2.0)使用UIReferenceLibraryViewController,ios5,cocos2d-iphone,Ios5,Cocos2d Iphone,出于某种原因,我整天都在努力解决这个问题,希望有人能对此有所了解 我已经设置了一个CCLabelTTF并为其添加了一个触摸处理程序,在触摸端,我想在UIReferenceLibraryViewController中查找该标签的字符串值。以下是我尝试的样子(我的游戏处于横向模式,这就是我尝试90度旋转的原因): 这类很有效。我单击我的标签,会显示UIReferenceLibraryViewController(尽管由于某种原因它不会在横向中旋转),然后会显示我的定义。但是,当我单击UIRefere

出于某种原因,我整天都在努力解决这个问题,希望有人能对此有所了解

我已经设置了一个
CCLabelTTF
并为其添加了一个触摸处理程序,在触摸端,我想在
UIReferenceLibraryViewController
中查找该标签的字符串值。以下是我尝试的样子(我的游戏处于横向模式,这就是我尝试90度旋转的原因):

这类很有效。我单击我的标签,会显示
UIReferenceLibraryViewController
(尽管由于某种原因它不会在横向中旋转),然后会显示我的定义。但是,当我单击
UIReferenceLibraryViewController
中的“完成”按钮时,我的应用程序因执行错误访问而崩溃。我想我遗漏了一些明显的东西,但不确定是什么

当然,任何帮助都会被告知

谢谢

穆斯塔法

我也有类似的问题。在我的例子中,我在类中的一个方法中声明并实例化
UIReferenceLibraryViewController
对象。当选择“完成”按钮时,我收到一个错误,因为此时我的
UIReferenceLibraryViewController
对象已不存在。 为了解决这个问题,我在类接口中创建了一个成员变量:

UIReferenceLibraryViewController *reference;
然后,我使用retain创建了一个属性:

@property (retain) UIReferenceLibraryViewController *reference;
在我想在中显示字典屏幕的方法中,did使用了以下内容:

reference = [[UIReferenceLibraryViewController alloc] initWithTerm:cell.textLabel.text];
[[[CCDirector sharedDirector] openGLView] addSubview:reference.view];
然后,我在dealloc方法中释放了引用对象。 不幸的是,它不再崩溃,但“完成”按钮现在什么也不做

其他信息: 最终我让我的应用程序正常工作。我的应用程序在一个场景上添加一个UITableView,并允许用户单击表格视图单元格,以便在单元格中查找单词的定义

为了使其正常工作,我做了以下工作: 在我的CCScene类(Game.m)中,我创建了一个UITableView。然后,我创建一个UITableViewController类,并将UITableView数据源和委托设置为该新类

myTableView.dataSource = myWordListViewController;
myTableView.delegate = myWordListViewController;
然后,我添加UITableView作为场景的子视图,如下所示

[[[CCDirector sharedDirector] openGLView] addSubview:myTableView];
CCScene类有一个成员变量(称为delegate),它是我的AppDelegate类的实例。AppDelegate类有一个成员变量,该变量是RootViewController的实例

RootViewController  *viewController;
因此,现在我向用户展示了一个UITableView(在场景顶部)。此表视图包含单词列表。我现在需要确保表视图单元格在单击时显示字典定义

在MyWordListViewController(UITableViewController)中,我确保存在允许此类充当我的表视图的数据源和委托的方法

<UITableViewDelegate, UITableViewDataSource>
现在,在MyWordListViewController的didSelectRowAtIndexPath方法中,我可以通过依赖AppDelegate类中的RootViewController变量在表视图上显示字典

delegate = (AppDelegate*) [[UIApplication sharedApplication] delegate];
reference = [[UIReferenceLibraryViewController alloc] initWithTerm:cell.textLabel.text];

[delegate.viewController presentModalViewController:reference animated:YES];
这也许不是最有说服力的解决方案,但它确实有效

reference = [[UIReferenceLibraryViewController alloc] initWithTerm:cell.textLabel.text];

[delegate.viewController presentModalViewController:reference animated:YES];