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];