@@ -325,6 +325,14 @@ category UIView(React) {
325325 public virtual void removeReactSubview:(UIView* subview);
326326}
327327
328+ category UIViewController(RCTViewControllerAppearance) {
329+ public @property (assign, readonly) BOOL reactViewControllerIsVisible;
330+ public virtual void reactAddViewControllerAppearanceListener:(id<RCTViewControllerAppearanceListener> listener);
331+ public virtual void reactNotifyViewControllerDidAppear:(BOOL animated);
332+ public virtual void reactNotifyViewControllerDidDisappear:(BOOL animated);
333+ public virtual void reactRemoveViewControllerAppearanceListener:(id<RCTViewControllerAppearanceListener> listener);
334+ }
335+
328336class ObjCTimerRegistry : public facebook::react::PlatformTimerRegistry {
329337 public ObjCTimerRegistry();
330338 public RCTTiming* _Null_unspecified timing;
@@ -1156,7 +1164,7 @@ interface RCTExceptionsManager : public NSObject <RCTBridgeModule> {
11561164 public virtual void reportSoftException:stack:exceptionId:(_Nullable NSString* message, _Nullable NSArray<NSDictionary*>* stack, double exceptionId);
11571165}
11581166
1159- interface RCTFabricModalHostViewController : public UIViewController {
1167+ interface RCTFabricModalHostViewController : public RCTViewController {
11601168 public @property (assign) UIInterfaceOrientationMask supportedInterfaceOrientations;
11611169 public @property (weak) id<RCTFabricModalHostViewControllerDelegate> delegate;
11621170}
@@ -1517,7 +1525,7 @@ interface RCTModalHostViewComponentView : public RCTViewComponentView <UIAdaptiv
15171525 public virtual void presentViewController:animated:completion:(UIViewController* modalViewController, BOOL animated, void(^)(void) completion);
15181526}
15191527
1520- interface RCTModalHostViewController : public UIViewController {
1528+ interface RCTModalHostViewController : public RCTViewController {
15211529 public @property (assign) UIInterfaceOrientationMask supportedInterfaceOrientations;
15221530 public @property (copy) void(^boundsDidChangeBlock)(CGRect newBounds);
15231531}
@@ -2467,6 +2475,9 @@ interface RCTViewComponentView : public UIView <RCTComponentViewProtocol, RCTTou
24672475 public virtual void updateProps:oldProps:(const facebook::react::Props::Shared& props, const facebook::react::Props::Shared& oldProps);
24682476}
24692477
2478+ interface RCTViewController : public UIViewController {
2479+ }
2480+
24702481interface RCTViewManager : public NSObject <RCTBridgeModule> {
24712482 public @property (weak) RCTBridge* bridge;
24722483 public CGFloat RCTJSONParseOnlyNumber(id json);
@@ -2530,7 +2541,7 @@ interface RCTWrapperView : public UIView {
25302541 public virtual instancetype initWithBridge:(RCTBridge* bridge);
25312542}
25322543
2533- interface RCTWrapperViewController : public UIViewController {
2544+ interface RCTWrapperViewController : public RCTViewController {
25342545 public virtual instancetype initWithContentView:(UIView* contentView);
25352546}
25362547
@@ -3493,6 +3504,11 @@ protocol RCTValueAnimatedNodeObserver : public NSObject {
34933504 public virtual void animatedNode:didUpdateValue:(RCTValueAnimatedNode* node, CGFloat value);
34943505}
34953506
3507+ protocol RCTViewControllerAppearanceListener : public NSObject {
3508+ public virtual void reactViewControllerDidAppear:animated:(UIViewController* viewController, BOOL animated);
3509+ public virtual void reactViewControllerDidDisappear:animated:(UIViewController* viewController, BOOL animated);
3510+ }
3511+
34963512protocol RCTVirtualViewContainerProtocol {
34973513 public virtual RCTVirtualViewContainerState* virtualViewContainerState();
34983514}
0 commit comments