2010-03-19 3 views
0

좋아요, 그렇기 때문에 인터페이스 빌더로 만든 일부 요소가 있고 자신을 코딩 한 일부 뷰가있는 viewController 메서드가 있습니다.iphone 인스턴스/클래스 메서드 문제

IB에서보기를 생성했습니다 ... viewOne을 호출 할 수 있습니다. 단추를 만들고 (코드를 통해) 별도의보기 (viewTwo)에 배치하는 루프를 만들었습니다. 이것은 클래스 메소드에서 수행됩니다. 그러나 단추 중 하나를 클릭 할 때마다 내가 만든보기가 열리길 원합니다. 그래서 내가 그랬어 :

+(void) woogoo:(id)sender { 
    //back button 
    [self.view addSubview:viewOne] 
} 

는하지만, 프로그램이 충돌 버튼은

을 클릭 할 때 :

[button addTarget:self action:@selector(woogoo:) 
      forControlEvents:UIControlEventTouchUpInside]; 

woogoo 클래스는 다음을 수행합니다. 나도 우구를 인스턴스 메서드로 만들려고했지만이 경우에도 충돌이 발생합니다. 버튼을 클릭하면 viewOne이 표시됩니다. 내가 할 수있는 어떤 아이디어?

+0

인스턴스 메소드를 만들 때 정확히 어떤 오류가 발생합니까? – DyingCactus

+0

woogoo를 인스턴스 메서드로 만들면 콘솔에 다음 메시지가 나타납니다. 2010-03-19 00 : 16 : 17.258 InstantNavigatore [85979 : 207] *** + [HomeViewController woogoo :] : 클래스 0xc7b8 00 : 16 : 17.259 InstantNavigatore [85979 : 207] *** 캐치되지 않은 예외 'NSInvalidArgumentException'으로 인해 응용 프로그램 종료 중, 이유 : '*** + [HomeViewController woogoo :] : 알 수없는 선택기로 전송 됨 class 0xc7b8 ' – user290031

답변

0

대신 인터페이스 빌더의 IBAction을 버튼에 연결하지 않으면 [self.view addSubview : viewOne]; 그 IBAction 메서드에.

추신. 충분한 정보가 아니다

건배

+0

내가 만들고있는 버튼이 끊임없이 만들어지고 있기 때문에 인터페이스 빌더의 IBAction을 통해이 작업을 수행하지 않습니다. 기본적으로 응용 프로그램의이 부분은 "알림"섹션입니다. 따라서 사용자가 알림을 만들면 새 버튼이 만들어져 화면에 표시됩니다. IBAction을 그렇게 할 수는 없습니다. – user290031

0

을하지만 난 당신이 woogoo에있을 때 뭔가 "viewOne"의 내용에 잘못 추측에는 요 : [viewOne self.view의 addSubview] 당신은 이후에 세미콜론을 놓치고있어. 바로 addSubview 전에이 줄을 추가하고 콘솔에서 무엇을 얻을 참조 : 당신은보기의 유형과 일치 같은 것을 참조하고 viewOne 생성 프레임한다

NSLog("woogoo: %@", viewOne); 

. (null) 또는 다른 것을 잘 보면, viewOne의 설정 방법을 확인하십시오.

<UIView: 0x4519b70; frame = (10 1; 300 43); layer = <CALayer: 0x4519540>> 

아마도 viewOne이 생성/초기화되는 방법 /시기에 대한 정보를 더 게시 할 수 있습니다.

0

+woogoo:에서 self.view을 호출합니다. 클래스 메서드이므로 self도 클래스이므로 +view도 클래스 메서드 여야합니다. 수업 방법으로 만들었 니?

그렇지 않은 경우 -woogoo: 인스턴스 메서드를 만들고 -addTarget:… 메서드를 호출하고 위쪽으로 전파해야합니다.