2014-04-13 3 views
1

사용자에게 표시 될 때마다 UIAlertView를 가져 오는 단일 수신기를 만들고 싶습니다.iOS7의 UIWindow 객체에서 UIAlertView를 가져 오는 방법

먼저이 관찰자를 설정했습니다.

[[NSNotificationCenter defaultCenter] addObserver:self 
              selector:@selector(windowDidBecomeVisible:) 
               name:UIWindowDidBecomeVisibleNotification 
               object:nil]; 

다음과 같이 UIWindow 개체를 가져옵니다.

- (void)windowDidBecomeVisible:(NSNotification *)notification 
{ 
    UIWindow *window = [notification object]; 
} 

하지만이 창 개체에서 UIAlertView를 가져올 수 없습니다. 이 창 아래에 하위보기가 하나 뿐이며 하위보기에는 하위보기가 없습니다.

아래 링크는 window 객체에서 UIAlertView 객체를 가져 오는 코드를 보여 주지만 작동하지 않습니다. https://stackoverflow.com/a/2529692/1709287

어쩌면 iOS7이 UIAlertView를 숨기고 숨길 수있는 트릭을 만들 수도 있습니다. 누구나 UIWindow 객체의 하위 뷰 (또는 멤버)를 추적하여 현재 화면에 표시된 UIAlertView 객체에 접근하는 방법을 알고 있습니까?

답변

1

iOS 7에서는 창을 통해 alerview의 인스턴스를 가져올 수 없습니다. 신청서에 명시 적으로 참고서를 보관해야합니다.

우리는 똑같은 문제에 직면했습니다. 문제는 (당신은))

3 인스턴스를 선택 show: 메서드를 재정의 할 수 있습니다 UIAlertView

2 MYAlertview) AppDelegate에에서 MyAlertView의 속성이 말을 하위 클래스

1)로 해결되었다

- (void)Show{ 
    AppDelegate *appdelegate = (AppDelegate)[[UIApplication SharedApplication] delegate]; 
    if([[appdelegate alertView] isVisible]) 
    [[appdelegate alertView] dismissWithClickedButtonIndex:0 animated:NO]; //We have requirement like dismissing you can have any operation here 

    [appDelegate setAlertView:self]; 
} 

4) UIAlertView을 모두 MYAlertview

으로 바꿉니다.
2

사람들은 일반적으로 애플이 의도적으로 불가능 아이폰 OS 7. 당신은 더 이상 할 수 없습니다 만든 아이폰 OS 6

에서 이런 종류의 일을했다. 유일한 옵션은 비공개 API이며,이를 사용하면 스토어에서 앱이 거부됩니다.

이 제어 수준이 필요한 경우 UIAlertView 사용을 중단해야합니다.

관련 문제