나는 비슷한 문제가 있었다. 내 경우, 내 클래스의 메서드 안에 UIReferenceLibraryViewController
개체를 선언하고 인스턴스화했습니다. 그 시점에서 내 UIReferenceLibraryViewController
개체가 없어지면 '완료'버튼을 선택할 때 오류가 발생했습니다. I는 사전 화면을 제시하고 싶었 때 방법에서
@property (retain) UIReferenceLibraryViewController *reference;
: 다음과 속성을 생성
UIReferenceLibraryViewController *reference;
가 유지 : 문제를 해결하기 위해, I 클래스 인터페이스 내의 멤버 변수를 만들어 다음 사용 않았다
reference = [[UIReferenceLibraryViewController alloc] initWithTerm:cell.textLabel.text];
[[[CCDirector sharedDirector] openGLView] addSubview:reference.view];
나는 다음의 dealloc 메소드에서 참조 객체를 발표했다. 불행히도 더 이상 충돌하지 않지만 '완료'버튼은 아무 것도하지 않습니다.
추가 정보 : 궁극적으로 나는 내 응용 프로그램을 작동시키고 있습니다. 내 응용 프로그램은 CCScene을 통해 UITableView를 추가하고 사용자가 셀 내에서 단어의 정의를 조회하기 위해 표보기 셀을 클릭 할 수있게합니다.
이 작업을 수행하기 위해 다음 작업을 수행했습니다. CCScene 클래스 (Game.m) 내에서 UITableView를 만듭니다. 그런 다음 UITableViewController 클래스를 만들고 UITableView 데이터 소스를 설정하고 해당 새 클래스에 위임합니다.
myTableView.dataSource = myWordListViewController;
myTableView.delegate = myWordListViewController;
다음과 같이 UITableView를 CCScene의 하위보기로 추가합니다.
[[[CCDirector sharedDirector] openGLView] addSubview:myTableView];
CCScene 클래스에는 내 AppDelegate 클래스의 인스턴스 인 멤버 변수 (delegate)가 있습니다. AppDelegate 클래스에는 RootViewController의 인스턴스 인 멤버 변수가 있습니다.
RootViewController *viewController;
그래서, 지금은합니다 (CCScene의 상단에) 사용자에게 제공 jQuery과가있다. 이 테이블 뷰에는 단어 목록이 들어 있습니다. 이제 테이블 뷰 셀에 클릭 할 때 사전 정의가 표시되는지 확인해야합니다.
내 MyWordListViewController (UITableViewController)에서이 클래스가 데이터 소스로 작동하고 내 테이블보기에 위임 할 수있게하는 메소드가 있는지 확인합니다. 사용자가 jQuery과의 셀 (즉 CCSCENE의 하위 뷰)를 클릭 또한
<UITableViewDelegate, UITableViewDataSource>
는, I는 사전 테이블 뷰의 상부에 표시 할.
사용자가 MyWordListViewController의 didSelectRowAtIndexPath 메서드를 클릭하여 응답합니다. CCScene (Game.m)의 하위보기로 테이블보기를 추가 한 이후로, 나는 CCScene이 의존하는 AppDelegate RootViewController를 사용해야합니다.
이렇게하기 위해 AppDelegate 클래스의 인스턴스를 보유하고있는 MyWordListViewController에 멤버 변수를 추가했습니다.
delegate = (AppDelegate*) [[UIApplication sharedApplication] delegate];
지금 MyWordListViewController의 didSelectRowAtIndexPath 방법에있어서, I는 AppDelegate에 클래스 내의 RootViewController 변수에 의존하여 테이블 뷰 위에 사전을 표시 할 수있다.
reference = [[UIReferenceLibraryViewController alloc] initWithTerm:cell.textLabel.text];
[delegate.viewController presentModalViewController:reference animated:YES];
그것은 가장 훌륭한 해결책은 아니지만 작동합니다.