diff --git a/dkhelper/dkhelper.xcodeproj/project.xcworkspace/xcuserdata/zhudekun.xcuserdatad/UserInterfaceState.xcuserstate b/dkhelper/dkhelper.xcodeproj/project.xcworkspace/xcuserdata/zhudekun.xcuserdatad/UserInterfaceState.xcuserstate index 5c56298..8a634c0 100644 Binary files a/dkhelper/dkhelper.xcodeproj/project.xcworkspace/xcuserdata/zhudekun.xcuserdatad/UserInterfaceState.xcuserstate and b/dkhelper/dkhelper.xcodeproj/project.xcworkspace/xcuserdata/zhudekun.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/dkhelper/dkhelper.xcodeproj/xcuserdata/zhudekun.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/dkhelper/dkhelper.xcodeproj/xcuserdata/zhudekun.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist new file mode 100644 index 0000000..fe2b454 --- /dev/null +++ b/dkhelper/dkhelper.xcodeproj/xcuserdata/zhudekun.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist @@ -0,0 +1,5 @@ + + + diff --git a/dkhelper/dkhelper/icon.png b/dkhelper/dkhelper/icon.png index eb89408..c92ade7 100644 Binary files a/dkhelper/dkhelper/icon.png and b/dkhelper/dkhelper/icon.png differ diff --git a/dkhelper/dkhelperDylib/DKHelperSettingController.m b/dkhelper/dkhelperDylib/DKHelperSettingController.m index 46597c9..5a44ae6 100644 --- a/dkhelper/dkhelperDylib/DKHelperSettingController.m +++ b/dkhelper/dkhelperDylib/DKHelperSettingController.m @@ -12,12 +12,20 @@ #import "DKGroupFilterController.h" @interface DKHelperSettingController (){ WCTableViewManager * manager; + MMUIViewController *helper; } @end @implementation DKHelperSettingController +-(instancetype)init{ + if (self = [super init]) { + helper = [[objc_getClass("MMUIViewController") alloc] init]; + } + return self; +} + - (void)viewDidLoad { [super viewDidLoad]; self.title = @"小助手设置"; @@ -259,4 +267,13 @@ [self dismissViewControllerAnimated:YES completion:nil]; } + +// 没法设置父类,设置消息转发以调用相关类方法 +- (MMUIViewController *) forwardingTargetForSelector:(SEL)aSelector { + if ([helper respondsToSelector:aSelector]) { + return helper; + } + return nil; +} + @end diff --git a/dkhelper/dkhelperDylib/MyUtils/DKHelper.m b/dkhelper/dkhelperDylib/MyUtils/DKHelper.m index e4a7b63..1553679 100644 --- a/dkhelper/dkhelperDylib/MyUtils/DKHelper.m +++ b/dkhelper/dkhelperDylib/MyUtils/DKHelper.m @@ -26,18 +26,15 @@ + (UINavigationController *)navigationContrioller{ - - UITabBarController * tabbarVC = (UITabBarController *)UIApplication.sharedApplication.keyWindow.rootViewController; - NSArray *vcs = tabbarVC.childViewControllers; - - return vcs[tabbarVC.selectedIndex]; + return ((UINavigationController *)([objc_getClass("CAppViewControllerManager") getCurrentNavigationController])); } + (UIBarButtonItem *)leftNavigationItem{ UINavigationController * navc = [DKHelper navigationContrioller]; - if (navc.viewControllers.count > 1){ - return ((UIViewController *)navc.viewControllers[1]).navigationItem.leftBarButtonItem; + for (UIViewController *vc in navc.childViewControllers) { + UIBarButtonItem * item = vc.navigationItem.leftBarButtonItem; + if (item) { return item; } } return nil; } diff --git a/dkhelper/dkhelperDylib/wechatHeaders/WechatHeaders.h b/dkhelper/dkhelperDylib/wechatHeaders/WechatHeaders.h index 57b85dd..7c70a7e 100644 --- a/dkhelper/dkhelperDylib/wechatHeaders/WechatHeaders.h +++ b/dkhelper/dkhelperDylib/wechatHeaders/WechatHeaders.h @@ -319,6 +319,18 @@ @end + + +@interface CAppViewControllerManager: NSObject + ++ (id)topViewControllerOfWindow:(id)arg1; ++ (id)topViewControllerOfMainWindow; ++ (id)topMostController; ++ (id)getCurrentNavigationController; ++ (id)getTabBarController; ++ (id)getAppViewControllerManager; + +@end #endif /* WechatHeaders_h */