//
//  MVMCoreViewManagerViewControllerProtocol.h
//  MVMCore
//
//  Created by Pfeil, Scott Robert on 7/25/18.
//  Copyright © 2018 myverizon. All rights reserved.
//
//  A protocol for view controllers that can be added to a view manager.

#import <UIKit/UIKit.h>

@protocol MVMCoreViewManagerViewControllerProtocol

@optional

// Reference to the manager
@property (nullable, weak, nonatomic) UIViewController <MVMCoreViewManagerProtocol>*manager;

// Notifies the view controller that it can be ready (usually means that it's committed to the screen).
- (void)viewControllerReadyInManager:(nonnull NSObject <MVMCoreViewManagerProtocol>*)manager;

// Notifies the current showing view controller that the manager is disappearing.
- (void)managerWillDisappear:(nonnull NSObject <MVMCoreViewManagerProtocol>*)manager;

// Manager can check if the view controller does not want to be cached. You should be following proper caching techniques (caching, updating when needed, deleting when needed), so this should be a last resort.
- (BOOL)shouldCacheInManager;

@end

