【问题标题】: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");
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-26
      • 1970-01-01
      • 1970-01-01
      • 2012-02-19
      • 1970-01-01
      • 1970-01-01
      • 2023-03-19
      相关资源
      最近更新 更多