用于检查根视图控制器是否为 ViewControllerC
斯威夫特:
if type(of: UIApplication.shared.keyWindow?.rootViewController) == ViewControllerC.self{
debugPrint("RootViewController is a ViewControllerC")
}
目标-C:
if ([[[[UIApplication sharedApplication] keyWindow] rootViewController] class] == [ViewControllerC class]){
NSLog(@"RootViewController is a ViewControllerC");
}
用于检查 ViewControllerC 是否显示在根视图控制器上
斯威夫特:
if let rootViewController = UIApplication.shared.keyWindow?.rootViewController{
if type(of: rootViewController.presentedViewController) == ViewControllerC.self{
debugPrint("ViewControllerC is presented on rootViewController")
}
}
目标-C:
UIViewController *viewController = [[[UIApplication sharedApplication] keyWindow] rootViewController];
if (viewController != nil){
if ([viewController.presentedViewController class] == [ViewControllerC class]){
NSLog(@"ViewControllerC is presented on rootViewController");
}
}
将根视图控制器设置为 ViewControllerC
斯威夫特:
if UIApplication.shared.keyWindow != nil{
let viewController:ViewControllerC = ViewControllerC()
//You can get above instance from Storyboard if you wanna
UIApplication.shared.keyWindow!.rootViewController = viewController
}
目标-C:
UIWindow *window = [[UIApplication sharedApplication] keyWindow];
if (window != nil){
ViewControllerC *viewController = [[ViewControllerC alloc] init];
//You can get above instance from Storyboard if you wanna
window.rootViewController = viewController;
}
如果存在,则用于从根目录推送导航控制器上的视图控制器
斯威夫特:
if UIApplication.shared.keyWindow != nil{
if let navigationController = UIApplication.shared.keyWindow!.rootViewController as? UINavigationController{
let viewController:ViewControllerC = ViewControllerC()
//You can get above instance from Storyboard if you wanna
navigationController.pushViewController(viewController, animated: true)
}
}
目标-C:
UIWindow *window = [[UIApplication sharedApplication] keyWindow];
if (window != nil){
UINavigationController *navigationController = (UINavigationController*)window.rootViewController;
if (navigationController != nil){
ViewControllerC *viewController = [[ViewControllerC alloc] init];
[navigationController pushViewController:viewController animated:true];
}
}
现在你可以做很多事情,例如从导航控制器获取 ViewControllerC 的实例(如果存在)
目标-C:
UIWindow *window = [[UIApplication sharedApplication] keyWindow];
if (window != nil){
UINavigationController *navigationController = (UINavigationController*)window.rootViewController;
if (navigationController != nil){
UIViewController *viewController = [navigationController topViewController];
if ([viewController class] == [ViewControllerC class]){
NSLog(@"Do what you want with viewControllerC instance");
}
}
}