iOS 自定义view里实现控制器的跳转

时间:2023-03-09 22:40:39
iOS 自定义view里实现控制器的跳转

1、view里实现控制器的modal

  • 拿到主窗口的根控制器,用根控制器进行modal需要的modal的控制器

    • 场景:点击自定义view里的按钮实现控制器的modal

UIViewController *root = [UIApplication sharedApplication].keyWindow.rootViewController;
[root presentViewController:<#(nonnull UIViewController *)#> animated:YES completion:nil];

2、主流框架下 ,自定义view里实现控制器的push

  • 拿到主窗口的根控制器UITabBarController,用UITabBarController 选中的控制器(导航控制器)进行push

UITabBarController *tabBarVc = (UITabBarController *)[UIApplication sharedApplication].keyWindow.rootViewController;
UINavigationController *nav = (UINavigationController *)tabBarVc.selectedViewController;
[nav pushViewController:<#(nonnull UIViewController *)#> animated:YES];

3、主流框架下,自定义view里利用到UITabBarController控制器 modal 出来的导航控制器push

  • modal 关系

UIViewController *a ;
UIViewController *b ;
[a presentViewController:b animated:YES completion:nil];
b.presentingViewController (该属性指向) -> a
a.presentedViewController (该属性指向) -> b
  • 做法

UIViewController *root = [UIApplication sharedApplication].keyWindow.rootViewController;
UINavigationController *nav = (UINavigationController *)root.presentedViewController;
[nav pushViewController:<#(nonnull UIViewController *)#> animated:YES];