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];