子线程push一个controller 引起的崩溃

感谢大佬给的解答

创建 UINavigationController+Main.h 文件

.h文件 

#import

NS_ASSUME_NONNULL_BEGIN

@interfaceUINavigationController (Main)

@end

NS_ASSUME_NONNULL_END

.m文件


#import "UINavigationController+Main.h"

#import

@implementationUINavigationController (Main)

+ (void)load {

    staticdispatch_once_tonceToken;

    dispatch_once(&onceToken, ^{

        MethodoriM =class_getInstanceMethod([selfclass],@selector(pushViewController:animated:));

        MethodrepM =class_getInstanceMethod([selfclass],@selector(p_pushViewController:animated:));

        method_exchangeImplementations(oriM, repM);

    });

}

- (void)p_pushViewController:(UIViewController*)viewController animated:(BOOL)animated {

    dispatch_async(dispatch_get_main_queue(), ^{

        [selfp_pushViewController:viewControlleranimated:animated];

    });

}

@end



其他的什么也不用动 

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。