适配IPad

解决IPad打开小助手崩溃问题
This commit is contained in:
DKJone
2019-02-06 17:48:06 +08:00
parent 63d6a01cee
commit 009b2f1455
6 changed files with 38 additions and 7 deletions
@@ -12,12 +12,20 @@
#import "DKGroupFilterController.h"
@interface DKHelperSettingController ()<MultiSelectGroupsViewControllerDelegate>{
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
+4 -7
View File
@@ -26,18 +26,15 @@
+ (UINavigationController *)navigationContrioller{
UITabBarController * tabbarVC = (UITabBarController *)UIApplication.sharedApplication.keyWindow.rootViewController;
NSArray<UINavigationController *> *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;
}
@@ -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 */