2015-01-11 8 views
0

을 보여줄 수 없었다 내가있는 UIButton을 만들어 내보기에 추가 : YES와 함께라는 doEnable에 WillDidAppear에서있는 UIButton 항상

btn=[[UIButton alloc] init]; 
[btn setFrame:CGRectMake(0,rect.size.height-52, 70, 52)]; 
btn.imageEdgeInsets = UIEdgeInsetsMake(0,13,16,0); 
btn.titleEdgeInsets = UIEdgeInsetsMake(35,-42,0, 0); 
[btn addTarget:self action:@selector(btnClicked:) forControlEvents:UIControlEventTouchUpInside]; 
[self.view.window addSubview:btn]; 

-(void)doEnable:(BOOL)enable{ 
    if(enable){ 
     [btn setBackgroundImage:[UIImage imageNamed:@"1.png"] forState:UIControlStateNormal]; 
     [btn setImage:[UIImage imageNamed:@"2.png"] forState:UIControlStateNormal]; 
     [btn setTitle:@"enter" forState:UIControlStateNormal]; 
     [btn setHidden:NO]; 

    // [self.view bringSubviewToFront:_turn_button]; 
    } 
    else{ 
     [btn setBackgroundImage:nil forState:UIControlStateNormal]; 
     [btn setImage:nil forState:UIControlStateNormal]; 
     [btn setTitle:@" " forState:UIControlStateNormal]; 
     btn.hidden = YES; 
    } 
} 

내가보기를 입력 할 때 NO와 WillDidDisappear에, 다음, 버튼을 표시해야합니다 왼쪽 하단에

이상한 일은 때로는 나타나기도하고 때로는 나타나지 않는 경우가 있습니다. 그러나 심지어 표시되지 않을 수도 있습니다, 그것은 여전히 ​​터치 이벤트를받을 수, 메서드는 항상 호출됩니다. 왜?

+0

doEnable 메소드에 중단 점을 추가하고 예상대로 화면에 들어가거나 떠날 때 YES 및 NO로 호출되는지 확인하십시오. 또한 뷰에 단추를 추가하는 것은 [self.view addSubview : btn]이되어야합니다. – manecosta

+0

doEnable 메서드는 항상 YES로 호출되며 [self.view addSubview : btn]을 시도했지만 여전히 그렇지 않습니다. 작업. –

답변

0

viewWidAppear 및 viewWillAppear에서 UI를 업데이트 할 때 viewDidAppear 및 viewDidDisappear에서 doEnable 메서드를 호출해야하며 view가 아직로드되지 않았기 때문에 viewWillDisappear가 보장되지 않는다고 생각합니다.

+0

여전히 작동하지 않습니다 ... –

+0

Ok. 오류가있는 샘플 프로젝트를 추적하여 추적 할 수 있습니까? –

0

변경이 :

[self.view.window의 addSubview : BTN]; 이에

:

[self.view의 addSubview : BTN];

+0

시도했다 ... 여전히 작동하지 않습니다. –

+0

을 만들 때 맞춤 설정해보세요. 그런 다음 사용자가'[btn setHidden : YES]'를 사용하지 않도록 숨길 때''btn setEnabled : NO ''와의 사용자 상호 작용을 비활성화하십시오. – CarlHere

+0

'setEnable' 메소드를 시도했지만 문제가 동일했습니다. 이제 'WillDidDisappear'에서 버튼을 없애고 WillDidappear에서 다시 생성해야합니다. –