2014-09-30 8 views
1

ECSlidingViewController의 Top View Controller가 사이드 바 메뉴가 해제되거나 포커스가 될 때를 알 수있는 방법이 있습니까? 즉 ECSlidingViewController에 해당하는 일종의 viewWillAppear입니다. 사이드 바를 보여준 후에 오작동하는 상위 뷰 컨트롤러에서 refreshcontrol을 사용하므로 refreshControl에서 endRefreshing을 호출하여 wierdness가 사라질 수있는 위치를 파악하려고합니다. viewWillAppear가 작동하지 않습니다. 감사!ECSlidingViewController의 Top View Controller가 사이드 바 메뉴가 해제되었을 때를 알 수있는 방법이 있습니까?

답변

1

ECSlidingViewController v2.0에는 알림이 없으므로 다음과 같은 방법으로 해결할 수있었습니다. 사이드 바 메뉴에서 ViewWillDisappear에서 "willGetFocus"라는 UIViewController에 새로운 카테고리 메소드를 호출합니다.

사이드 바 메뉴에서 :

탑 뷰 컨트롤러에서
-(void) viewWillDisappear:(BOOL)animated 
{ 
    [super viewWillDisappear:animated]; 
    UINavigationController* topViewController =  
     ((UINavigationController*)self.slidingViewController.topViewController); 
    [topViewController.visibleViewController willGetFocus]; 
} 

:

-(void) willGetFocus { 

    [self.refreshControl endRefreshing]; 
} 

새로운 그것에 대해 때 내 topViewController 알아야 할 때마다 내가 너무 좋아하는 뷰 컨트롤러에 willGetFocus을 무시 포커스를 취득하기 범주 :

@interface UIViewController (KnowsFocus) 

-(void) willGetFocus; 

@end 

@implementation UIViewController (KnowsFocus) 

-(void) willGetFocus { 

} 
@end