JASidePanels delegates for viewWillAppear ext not getting called

667 Views Asked by At

So I have set up JASidePanels with a root controller which implements JASidePanelController and my left panel which is a different UIViewController.

My problem is the left panel only receives the viewWillAppear viewDidAppear/disappear and viewWillAppear and viewDid/WillLoad only once for the first time the user slides the centre panel away. From then on these callback functions do not get called again.

What is the best way or how should I respond to these events inside my left panel view controller.

1

There are 1 best solutions below

0
On BEST ANSWER

Ok I figured it out.

There is a property called

@property (nonatomic, readonly) JASidePanelState state;

It states: "Current state of panels. Use KVO to monitor state changes"

There are 3 states changes I can monitor with this:

JASidePanelCenterVisible = 1,
JASidePanelLeftVisible,
JASidePanelRightVisible

I now react to KVO changes to the state. In my left panel's viewDidLoad I have:

[self.sidePanelController addObserver:self forKeyPath:@"state" options:NSKeyValueObservingOptionNew context:nil];

and to receive the change on state I have:

- (void)observeValueForKeyPath:(NSString *)keyPath
                      ofObject:(id)object
                        change:(NSDictionary *)change
                       context:(void *)context
{
    if ([keyPath isEqual:@"state"]) {
        if ([change[@"new"] isEqual:[NSNumber numberWithInt:1]]) {
            NSLog(@"Saving settings");
        }
    }
}