VTMagicController.h 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. //
  2. // VTMagicController.h
  3. // VTMagicView
  4. //
  5. // Created by tianzhuo on 14-11-11.
  6. // Copyright (c) 2014年 tianzhuo. All rights reserved.
  7. //
  8. #import <UIKit/UIKit.h>
  9. #import "UIViewController+VTMagic.h"
  10. #import "UIButton+VTMagic.h"
  11. #import "VTMagicMacros.h"
  12. #import "VTMagicView.h"
  13. NS_ASSUME_NONNULL_BEGIN
  14. @interface VTMagicController : UIViewController<VTMagicViewDelegate,VTMagicViewDataSource,VTMagicProtocol>
  15. /**
  16. * magic view,等同于self.view
  17. */
  18. @property (nonatomic, strong) VTMagicView *magicView;
  19. /**
  20. * 当前页面对应的索引
  21. */
  22. @property (nonatomic, assign) NSUInteger currentPage;
  23. /**
  24. * 生命周期状态
  25. */
  26. @property (nonatomic, assign) VTAppearanceState appearanceState;
  27. /**
  28. * 当前显示的控制器
  29. */
  30. @property (nonatomic, strong, nullable) __kindof UIViewController *currentViewController;
  31. /**
  32. * 屏幕上可见的控制器
  33. */
  34. @property (nonatomic, strong, readonly) NSArray<__kindof UIViewController *> *viewControllers;
  35. /**
  36. * 获取索引对应的ViewController
  37. * 若index超出范围或对应控制器不可见,则返回nil
  38. *
  39. * @param index 索引
  40. *
  41. * @return UIViewController对象
  42. */
  43. - (nullable __kindof UIViewController *)viewControllerAtPage:(NSUInteger)pageIndex;
  44. /**
  45. * 切换到指定页面
  46. *
  47. * @param pageIndex 页面索引
  48. * @param animated 是否需要动画执行
  49. */
  50. - (void)switchToPage:(NSUInteger)pageIndex animated:(BOOL)animated;
  51. @end
  52. NS_ASSUME_NONNULL_END