2010-08-21 4 views
1

내 응용 프로그램에는 단추가있는 도구 모음이 있습니다. 해당 버튼을 누르면 action 시트가 나타나고 앱의 언어를 변경할 수 있습니다. 이 툴바를 많은 뷰에 넣고 싶지만 모든 뷰에서 복사 붙여 넣기가 아닌 동일한 객체를 사용하고 싶습니다. 그래서 nib 파일을 가진 UIViewController를 만듭니다.이 nib 파일은 내 toolBar를 포함합니다. 자, UIView의에,이개체가 좋은 컨트롤러를 호출하지 않습니다.

toolBar *objToolBall = [[toolBar alloc] initWithNibName:@"toolBar" bundle:nil]; 

objToolBall.view.frame = CGRectMake(0, 418, 320, 44); 

[self.view addSubview:objToolBall.view]; 

[objToolBall release]; 

내 문제는 내가 툴바의 버튼을 누르면, 프로그램은 내가 객체를 생성 파일의 방법 "clickButtonLanguage"를 찾아보십시오, 그리고에서이다 할 "toolBar.m".

"toolBar.m"메소드는 어떻게 사용할 수 있습니까?

+0

오류가 있습니까? 버튼에 어떤 동작을 설정합니까? 또한이 질문을 확인하십시오 - http://stackoverflow.com/questions/3538589/unrecognized-selector-error-when-implementing-a-valuechanged-action-from-a-uislid/3538781. objToolBall이 할당 해제되고 자연스럽게 그 이후에 어떤 메시지에도 응답 할 수 없기 때문에 코드에 문제가있을 수 있습니다 ... – Vladimir

+0

인터페이스 빌더에서 조치를 설정하고 UIViewController "toolBar"의 메소드 "clickButtonLanguage" – alex

+0

을 삭제합니다. [objToolBar release]가 작동하지만 객체를 놓을 때? – alex

답변

0

문제는 릴리스가 아닙니다 (원래의 viewController와 관련 뷰가 아직 있다고 가정). 이 릴리스는 의미가 있습니다. 객체를 생성하고 추가 한 뷰에 대한 책임을 넘겨 주었으므로 이제 누출되지 않도록 객체를 릴리스해야합니다. 그러니 그 줄을 버리지 마라.

에 연결 한 내용이 정확히 이므로 원본보기 컨트롤러에서 메소드 호출이 표시됩니다. 다른에 연결하려면 IBActions 당신은 -removeTarget:action:forControlEvents에 일치하는 통화로 청취자로 해당 개체를

[objToolBall addTarget:action:forControlEvents:] 

와 프로그램을 추가하고 제거해야합니다.

관련 문제