react-native-navigation的迁移库

RNNSideMenuController.m 1.2KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. //
  2. // RNNSideMenuController.m
  3. // ReactNativeNavigation
  4. //
  5. // Created by Ran Greenberg on 09/02/2017.
  6. // Copyright © 2017 Wix. All rights reserved.
  7. //
  8. #import "RNNSideMenuController.h"
  9. #import "RNNSideMenuChildVC.h"
  10. @interface RNNSideMenuController ()
  11. @property (readwrite) RNNSideMenuChildVC *center;
  12. @property (readwrite) RNNSideMenuChildVC *left;
  13. @property (readwrite) RNNSideMenuChildVC *right;
  14. @end
  15. @implementation RNNSideMenuController
  16. -(instancetype)initWithControllers:(NSArray*)controllers;
  17. {
  18. self = [super init];
  19. [self setControllers:controllers];
  20. return self;
  21. }
  22. -(void)setControllers:(NSArray*)controllers {
  23. for (id controller in controllers) {
  24. if ([controller isKindOfClass:[RNNSideMenuChildVC class]]) {
  25. RNNSideMenuChildVC *child = (RNNSideMenuChildVC*)controller;
  26. if (child.type == RNNSideMenuChildTypeCenter) {
  27. self.center = child;
  28. }
  29. else if(child.type == RNNSideMenuChildTypeLeft) {
  30. self.left = child;
  31. }
  32. else if(child.type == RNNSideMenuChildTypeRight) {
  33. self.right = child;
  34. }
  35. }
  36. else {
  37. @throw [NSException exceptionWithName:@"UnknownSideMenuControllerType" reason:[@"Unknown side menu type " stringByAppendingString:[controller description]] userInfo:nil];
  38. }
  39. }
  40. }
  41. @end