如何从应用程序委托中获取iOS应用程序中的活动视图?

Dav*_*id 24 objective-c uiview ios

我如何从应用程序委托中获取当前活动视图(当前正由用户查看的主视图)以供参考?

pha*_*ann 34

UIWindow *window = [[UIApplication sharedApplication] keyWindow];
UIView *topView = window.rootViewController.view;
Run Code Online (Sandbox Code Playgroud)


sky*_*der 16

所有最佳答案都不适用于模态显示的视图! 请改用此代码:

UIView * topView = [[[[UIApplication sharedApplication] keyWindow] subviews] lastObject];


Ran*_*all 9

这取决于您的应用的设置方式.

通常,您的应用程序委托将具有一个主视图控制器属性,可以让您访问它.

让你的应用委托

MyAppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];

UIView *topView = appDelegate.viewController.view;
Run Code Online (Sandbox Code Playgroud)

如果您的应用在应用委托中具有导航控制器属性,则可以执行以下操作.

UIView *topView = appDelegate.navigationController.topViewController.view;
Run Code Online (Sandbox Code Playgroud)