有没有办法让ECSlidingViewController中的顶视图控制器知道边栏菜单何时被解除?

时间:2014-09-30 21:17:13

标签: ios ecslidingviewcontroller

ECSlidingViewController中的顶视图控制器是否有办法知道边栏菜单何时被解除,或何时它将成为焦点?即一种与ECSlidingViewController等效的viewWillAppear。我的顶视图控制器中有一个refreshcontrol,在显示侧边栏后开始行为不端,所以我试图找出我可以在refreshControl上调用endRefreshing的位置,以便让wierdness消失。将它放在viewWillAppear中不起作用。谢谢!

1 个答案:

答案 0 :(得分:1)

由于ECSlidingViewController v2.0没有通知,我能够通过以下方式解决这个问题。在侧边栏菜单中,在ViewWillDisappear中,我在UIViewController上调用一个名为“willGetFocus”的新类别方法。每当我的topViewController需要知道它何时获得焦点时,我会在该视图中覆盖willGetFocus,如下所示:

在侧边栏菜单中:

 -(void) viewWillDisappear:(BOOL)animated
 {
     [super viewWillDisappear:animated];
     UINavigationController* topViewController =    
        ((UINavigationController*)self.slidingViewController.topViewController);
     [topViewController.visibleViewController willGetFocus];
 }

在顶视图控制器中:

-(void) willGetFocus {

    [self.refreshControl endRefreshing];
}

新类别:

@interface UIViewController (KnowsFocus)

-(void) willGetFocus;

@end

@implementation UIViewController (KnowsFocus)

-(void) willGetFocus {

}
@end