UIViewController+BUUtilities.h 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. //
  2. // UIViewController+BUUtilities.h
  3. // BUAdSDK
  4. //
  5. // Created by Siwant on 2019/4/11.
  6. // Copyright © 2019 bytedance. All rights reserved.
  7. //
  8. #import <UIKit/UIKit.h>
  9. NS_ASSUME_NONNULL_BEGIN
  10. @interface UIViewController (BUUtilities)
  11. - (void)bu_safelyPresentViewController:(UIViewController *)viewControllerToPresent animated: (BOOL)flag completion:(void (^ __nullable)(void))completion;
  12. // 弹出时添加导航栈
  13. - (void)bu_safelyPresentVC:(UIViewController *)vc needNav:(BOOL)needNav animated:(BOOL)flag completion:(void (^ __nullable)(void))completion;
  14. // 获取当前最后一个被present出的VC,如果没有返回self
  15. - (UIViewController *)bu_presentingViewController;
  16. // 获取当前最后一个被present出的VC,如果没有返回window的最上的topVC
  17. + (UIViewController *)bu_presentingViewController;
  18. // 获取广义mainWindow的rootViewController
  19. + (nullable UIViewController*)bu_mainWindowRootViewController;
  20. // 获取指定UIResponder的链下游第一个ViewController对象
  21. + (nullable UIViewController*)bu_nextViewControllerFor:(UIResponder* _Nullable)responder;
  22. // 获取指定UIResponder的链下游第一个UINavigationController对象
  23. + (nullable UINavigationController*)bu_nextNavigationControllerFor:(UIResponder* _Nullable)responder;
  24. /** 查找当前显示的ViewController*/
  25. + (UIViewController *)bu_topViewController;
  26. + (UIViewController *)bu_recursiveFindCurrentShowViewControllerFromViewController:(UIViewController *)fromVC;
  27. @end
  28. NS_ASSUME_NONNULL_END