diff --git a/MVMCore/MVMCore.xcodeproj/project.pbxproj b/MVMCore/MVMCore.xcodeproj/project.pbxproj index 49f3911..e50deca 100644 --- a/MVMCore/MVMCore.xcodeproj/project.pbxproj +++ b/MVMCore/MVMCore.xcodeproj/project.pbxproj @@ -143,6 +143,8 @@ AFFCFA671FCCC0D700FD0730 /* MVMCoreLoadingOverlayHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = AFFCFA631FCCC0D600FD0730 /* MVMCoreLoadingOverlayHandler.m */; }; AFFCFA681FCCC0D700FD0730 /* MVMCoreLoadingViewControllerProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = AFFCFA641FCCC0D600FD0730 /* MVMCoreLoadingViewControllerProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; BB780ADF250F8C890030BD2F /* ActionNoopModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB780ADE250F8C890030BD2F /* ActionNoopModel.swift */; }; + D268D82B26700292008BD413 /* MVMCoreViewManagerViewControllerProtocolHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = D268D82926700292008BD413 /* MVMCoreViewManagerViewControllerProtocolHelper.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D268D82C26700292008BD413 /* MVMCoreViewManagerViewControllerProtocolHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = D268D82A26700292008BD413 /* MVMCoreViewManagerViewControllerProtocolHelper.m */; }; D27073B725BB45C4001C7246 /* ActionActionsModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D27073B625BB45C4001C7246 /* ActionActionsModel.swift */; }; D27073CD25BB4CEF001C7246 /* MVMCoreActionHandler+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = D27073CC25BB4CEF001C7246 /* MVMCoreActionHandler+Extension.swift */; }; D27073D125BB844B001C7246 /* MVMCoreActionDelegateProtocol+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = D27073D025BB844B001C7246 /* MVMCoreActionDelegateProtocol+Extension.swift */; }; @@ -286,6 +288,8 @@ AFFCFA631FCCC0D600FD0730 /* MVMCoreLoadingOverlayHandler.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MVMCoreLoadingOverlayHandler.m; sourceTree = ""; }; AFFCFA641FCCC0D600FD0730 /* MVMCoreLoadingViewControllerProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MVMCoreLoadingViewControllerProtocol.h; sourceTree = ""; }; BB780ADE250F8C890030BD2F /* ActionNoopModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActionNoopModel.swift; sourceTree = ""; }; + D268D82926700292008BD413 /* MVMCoreViewManagerViewControllerProtocolHelper.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MVMCoreViewManagerViewControllerProtocolHelper.h; sourceTree = ""; }; + D268D82A26700292008BD413 /* MVMCoreViewManagerViewControllerProtocolHelper.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MVMCoreViewManagerViewControllerProtocolHelper.m; sourceTree = ""; }; D27073B625BB45C4001C7246 /* ActionActionsModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActionActionsModel.swift; sourceTree = ""; }; D27073CC25BB4CEF001C7246 /* MVMCoreActionHandler+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "MVMCoreActionHandler+Extension.swift"; sourceTree = ""; }; D27073D025BB844B001C7246 /* MVMCoreActionDelegateProtocol+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "MVMCoreActionDelegateProtocol+Extension.swift"; sourceTree = ""; }; @@ -498,6 +502,8 @@ AF43A71A1FC5BEBB008E9347 /* MVMCoreViewControllerProtocol.h */, AF43A71F1FC5D2BA008E9347 /* MVMCoreViewManagerProtocol.h */, AF1201812108C9B400E2F592 /* MVMCoreViewManagerViewControllerProtocol.h */, + D268D82926700292008BD413 /* MVMCoreViewManagerViewControllerProtocolHelper.h */, + D268D82A26700292008BD413 /* MVMCoreViewManagerViewControllerProtocolHelper.m */, AF43A7401FC5FA6F008E9347 /* MVMCoreViewProtocol.h */, AFEEE8181FCDDE6B00B5EDD0 /* MVMCoreLoggingDelegateProtocol.h */, AF43A7001FC4B227008E9347 /* MVMCoreGlobalLoadProtocol.h */, @@ -715,6 +721,7 @@ AF43A7011FC4B227008E9347 /* MVMCoreGlobalLoadProtocol.h in Headers */, AF43A5771FBA5B7C008E9347 /* MVMCoreJSONConstants.h in Headers */, AFBB96631FBA3A570008D868 /* MVMCoreLoadRequestOperation.h in Headers */, + D268D82B26700292008BD413 /* MVMCoreViewManagerViewControllerProtocolHelper.h in Headers */, 8876D5CE1FB50A9E00EB2E3D /* MVMCore.h in Headers */, AF43A57B1FBA5E6A008E9347 /* MVMCoreHardcodedStringsConstants.h in Headers */, AFBB96B81FBA3CEC0008D868 /* MVMCoreActionDelegateProtocol.h in Headers */, @@ -899,6 +906,7 @@ 016FF6F2259A4FCC00F5E4AA /* ClientParameterModel.swift in Sources */, D2DEDCBB23C65BC300C44CC4 /* Percent.swift in Sources */, AFBB966A1FBA3A570008D868 /* MVMCoreLoadRequestOperation.m in Sources */, + D268D82C26700292008BD413 /* MVMCoreViewManagerViewControllerProtocolHelper.m in Sources */, 0AEBB84625FA75C000EA80EE /* ActionOpenSMSModel.swift in Sources */, 016FF6FC259BA27E00F5E4AA /* ClientParameterProtocol.swift in Sources */, 01DB1F2B26444F7F000F1AF4 /* ActionOpenPageProtocol.swift in Sources */, diff --git a/MVMCore/MVMCore/MVMCore.h b/MVMCore/MVMCore/MVMCore.h index c7fbd4a..7ef1d6e 100644 --- a/MVMCore/MVMCore/MVMCore.h +++ b/MVMCore/MVMCore/MVMCore.h @@ -74,6 +74,7 @@ FOUNDATION_EXPORT const unsigned char MVMCoreVersionString[]; #import #import #import +#import #import #import diff --git a/MVMCore/MVMCore/MainProtocols/MVMCoreViewManagerProtocol.h b/MVMCore/MVMCore/MainProtocols/MVMCoreViewManagerProtocol.h index b9ab523..94cf031 100644 --- a/MVMCore/MVMCore/MainProtocols/MVMCoreViewManagerProtocol.h +++ b/MVMCore/MVMCore/MainProtocols/MVMCoreViewManagerProtocol.h @@ -17,4 +17,15 @@ // Returns if the manage currently contains the page with the page type. - (BOOL)containsPageWithPageType:(nullable NSString *)pageType; +@optional + +/// Notifies the manager that the controller received new data. +- (void)newDataReceivedInViewController:(nonnull UIViewController *)viewController; + +/// Call on a manager when a view controller will be displayed. (Mostly called by other managers) +- (void)willDisplayViewController:(nonnull UIViewController *)viewController; + +/// Call on a manager when a controller is displayed. (Mostly called by other managers) +- (void)displayedViewController:(nonnull UIViewController *)viewController; + @end diff --git a/MVMCore/MVMCore/MainProtocols/MVMCoreViewManagerViewControllerProtocolHelper.h b/MVMCore/MVMCore/MainProtocols/MVMCoreViewManagerViewControllerProtocolHelper.h new file mode 100644 index 0000000..46ee89e --- /dev/null +++ b/MVMCore/MVMCore/MainProtocols/MVMCoreViewManagerViewControllerProtocolHelper.h @@ -0,0 +1,22 @@ +// +// MVMCoreViewManagerViewControllerProtocolHelper.h +// MVMCore +// +// Created by Scott Pfeil on 6/8/21. +// Copyright © 2021 myverizon. All rights reserved. +// + +#import +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface MVMCoreViewManagerViewControllerProtocolHelper : NSObject + +/// Set the manager on the view controller. This function is a helper for swift because of the objc protocol ++ (void)helpSetManager:(nonnull UIViewController *)manager viewController:(nullable UIViewController *)viewController; + +@end + +NS_ASSUME_NONNULL_END diff --git a/MVMCore/MVMCore/MainProtocols/MVMCoreViewManagerViewControllerProtocolHelper.m b/MVMCore/MVMCore/MainProtocols/MVMCoreViewManagerViewControllerProtocolHelper.m new file mode 100644 index 0000000..56d0b4f --- /dev/null +++ b/MVMCore/MVMCore/MainProtocols/MVMCoreViewManagerViewControllerProtocolHelper.m @@ -0,0 +1,17 @@ +// +// MVMCoreViewManagerViewControllerProtocolHelper.m +// MVMCore +// +// Created by Scott Pfeil on 6/8/21. +// Copyright © 2021 myverizon. All rights reserved. +// + +#import "MVMCoreViewManagerViewControllerProtocolHelper.h" + +@implementation MVMCoreViewManagerViewControllerProtocolHelper + ++ (void)helpSetManager:(nonnull UIViewController *)manager viewController:(nullable UIViewController *)viewController { + viewController.manager = manager; +} + +@end