2012-11-08 13 views
0

저는 객관적이고 새로운 대리인의 메테오 및 사용법을 이해하려고합니다. 현재 Alertview 클래스가 있고 다른 클래스를 만들어 해당 함수를 호출해야합니다. I'v는 appdelegate 클래스로 동일한 작업을 수행했습니다. 하지만 내 수업에서는 할 수 없어요.대리인을 사용할 수 없습니다.

   TableViewController *newControll = (TableViewController*)[UIApplication sharedApplication].delegate; 
       [newControll openSettings]; 

그래서 내 방법에 액세스하려고합니다. Compilator는 newControll에서이 메서드를 볼 수 있지만 unrecognize selector를 호출하면이 메서드를 호출합니다.

기본적으로 이전에 다른 클래스에서 만든 함수를 호출해야합니다. 이것이 단순한 해결책이라면 유감이지만, 대의원과 객관적인 사실을 아직 잘 파악하지 못했습니다.

아마도 모든 사람이 내가해야 할 일이 없기 때문에 다시 한 번 설명하려고합니다.

개체가 TableViewController입니다. 이 객체 내부에서 클래스 AlertView을 호출하여 경고 메시지를 표시합니다. 그리고 그에 따라 알리미 대화 상자에서 사용자 상호 작용 (암호는 괜찮습니다, 비밀 번호는 아닙니다) 내 TableViewControlleropenSettings 메서드를 호출하거나 호출해야합니다. 그러면 어떻게해야할까요?

+0

나는 당신이 원한다는 것을 모르지만, 컴파일러는 처음부터 rigth를 말합니다.) 처음에는 [UIApplication sharedApplication] .delegate is not nil입니까? 둘째 - [UIApplication sharedApplication] .delegate에는 openSettings가 없습니다. –

+0

그러면 코드를 게시 할 수 있습니다. – footyapps27

+0

어떤 부분을보고 싶습니까? – Datenshi

답변

1

TableViewController이 사용자의 앱 클래스가 아닌 경우 TableViewController의 개체를 사용하여 openSettings 메서드를 사용해야합니다. 그것은 같은해야

,

TableViewController *newControll = [[TableViewController alloc] init]; 

하면 새로운 alertView로 이동한다고 가정. 당신의 AlertView.h 파일에서

@property(nonatomic, retain) TableViewController *tableViewController; 

을 추가하고 새로운 alertView 개체, 당신의 AlertView 클래스 이제

AlertView *alertView = [[AlertView alloc] init]; 
//some code.. 
alertView.tableViewController = self; 

, 그것을로 전화를 만드는 동안 AppDelegate에의

[self.tableViewController openSettings]; 

사용은하지 않습니다 그것을하는 방법.

iOS에 대한 자습서가 필요한 경우 check raywenderlich.

+0

이전에 생성 된 정확한 객체를 호출해야하고 새 객체를 만들지 않고 호출해야하기 때문에이 방법을 시도했지만 제대로 완료되지 않았습니다. – Datenshi

+0

newControll은 어디에 생성 되었습니까? 어떤 반에서? 이 메서드를 어디에서 호출하려고합니까? 어쨌든 내 대답이 업데이트되었습니다. – iDev

+0

I'v가 내 질문을 업데이트했습니다. 제발 내가 뭘하려고하는지 더 분명하게 보일 것입니다. – Datenshi

관련 문제