所以我用一个实现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/