VTMagicProtocol.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. //
  2. // VTMagicProtocol.h
  3. // VTMagic
  4. //
  5. // Created by tianzhuo on 15/7/11.
  6. // Copyright (c) 2015年 tianzhuo. All rights reserved.
  7. //
  8. // private protocol
  9. #import <Foundation/Foundation.h>
  10. #import "VTEnumType.h"
  11. @class VTMagicView;
  12. @protocol VTMagicProtocol <NSObject>
  13. @required
  14. /**
  15. * 当前页面索引
  16. */
  17. - (NSInteger)currentPage;
  18. /**
  19. * 当前页面索引的setter方法,外部禁止直接修改
  20. */
  21. - (void)setCurrentPage:(NSInteger)currentPage;
  22. /**
  23. * 当前页面控制器
  24. */
  25. - (__kindof UIViewController *)currentViewController;
  26. /**
  27. * 当前页面控制器的setter方法
  28. *
  29. * @param currentViewController 当前页面控制器,外部禁止直接修改
  30. */
  31. - (void)setCurrentViewController:(UIViewController *)currentViewController;
  32. /**
  33. * magicController的显示状态
  34. *
  35. * @return 生命周期状态
  36. */
  37. - (VTAppearanceState)appearanceState;
  38. /**
  39. * 任何magicController默认都会有对应的magicView
  40. */
  41. - (VTMagicView *)magicView;
  42. @end
  43. /**
  44. * magic重用协议
  45. */
  46. @protocol VTMagicReuseProtocol <NSObject>
  47. @optional
  48. /**
  49. * 控制器或menuItem即将被重用时触发,
  50. * 由magicController的子页面控制器或自定义的menuItem实现
  51. */
  52. - (void)vtm_prepareForReuse;
  53. @end