所以我用一个实现JASidePanelController的根 Controller 和我的左面板(另一个UIViewController)来设置JASidePanels。

我的问题是,左侧面板仅在用户第一次滑动中间面板时仅收到一次viewWillAppear viewDidAppear/disappear和viewWillAppear和viewDid/WillLoad一次。从那时起,这些回调函数不再被调用。

最好的方法是什么,或者我应该如何在我的左面板 View Controller 中响应这些事件。

最佳答案

好吧,我想通了。

有一个叫做

@property (nonatomic, readonly) JASidePanelState state;

它指出:
“面板的当前状态。使用KVO监视状态变化”

我可以通过以下三种状态更改进行监视:
JASidePanelCenterVisible = 1,
JASidePanelLeftVisible,
JASidePanelRightVisible

我现在对KVO的状态使用react。在我的左面板的viewDidLoad中,我有:
[self.sidePanelController addObserver:self forKeyPath:@"state" options:NSKeyValueObservingOptionNew context:nil];

并收到状态更改,我有:
- (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");
        }
    }
}

关于ios - 不会调用viewWillAppear ext的JASidePanels委托(delegate),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24323396/

10-12 04:06