【问题标题】:JASidePanels delegates for viewWillAppear ext not getting called未调用 viewWillAppear ext 的 JASidePanels 代表
【发布时间】:2014-06-20 08:50:38
【问题描述】:
所以我设置了 JASidePanels,它带有一个实现 JASidePanelController 的根控制器和我的左侧面板,它是一个不同的 UIViewController。
我的问题是,当用户第一次滑开中心面板时,左侧面板仅接收一次 viewWillAppear viewDidAppear/disappear 和 viewWillAppear 和 viewDid/WillLoad。从那时起,这些回调函数不再被调用。
在我的左面板视图控制器中,最好的方法是什么,或者我应该如何响应这些事件。
【问题讨论】:
标签:
ios
objective-c
uiviewcontroller
jasidepanels
【解决方案1】:
好的,我想通了。
有一个属性叫
@property (nonatomic, readonly) JASidePanelState state;
它指出:
“面板的当前状态。使用 KVO 监控状态变化”
我可以用这个监控 3 种状态变化:
JASidePanelCenterVisible = 1,
JASidePanelLeftVisible,
JASidePanelRightVisible
我现在对 KVO 状态的更改做出反应。在我左侧面板的 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");
}
}
}