1 
2 #import <UIKit/UIKit.h>
3 
4 @class EXKernelAppRecord;
5 
6 @interface EXAppViewController : UIViewController
7 
8 - (instancetype)initWithAppRecord:(EXKernelAppRecord *)record;
9 - (void)refresh;
10 - (void)reloadFromCache;
11 
12 /**
13  *  Maybe displays an error to the user. Ignores it if RCTRedBox is already showing it.
14  */
15 - (void)maybeShowError:(NSError *)error;
16 
17 /**
18  *  Settable by the app's screen orientation API via the orientation kernel service.
19  */
20 - (void)setSupportedInterfaceOrientations:(UIInterfaceOrientationMask)supportedInterfaceOrientations;
21 
22 - (void)appStateDidBecomeActive;
23 - (void)appStateDidBecomeInactive;
24 
25 /**
26  *  Backgrounds all descendant controllers (modals) presented by this controller.
27  */
28 - (void)backgroundControllers;
29 
30 /**
31  *  Restores backgrounded controllers.
32  */
33 - (void)foregroundControllers;
34 
35 /**
36  *  The underlying react view or loading view. We need to expose this for animation/transitions
37  *  because react does weird stuff with layout that prevents us from operating on the superview.
38  */
39 @property (nonatomic, strong) UIView *contentView;
40 
41 @end
42