繁体   English   中英

如何在Swift 2.0的swrevealviewcontroller中知道菜单是否打开

[英]How to know menu open or not in swrevealviewcontroller in swift 2.0

我在ios中制作了一个应用程序。 我已经使用swrevealviewcontroller作为菜单了。无论菜单是否打开,我都需要键盘分配器。 那么如何识别菜单是否打开?

迅捷3

  • SWRevealViewControllerDelegate添加到您的控制器
  • viewDidLoad()中将revealViewControllerDelegate设置为self

     self.revealViewController().delegate = self 
  • 在你的viewController实现本功能与(didMoveTo)或一个与(willMoveTo)

func revealController(_ revealController: SWRevealViewController!, didMoveTo position: FrontViewPosition) {

    switch position {

    case FrontViewPosition.leftSideMostRemoved:
        print("LeftSideMostRemoved")
        // Left most position, front view is presented left-offseted by rightViewRevealWidth+rigthViewRevealOverdraw

    case FrontViewPosition.leftSideMost:
        print("LeftSideMost")
        // Left position, front view is presented left-offseted by rightViewRevealWidth

    case FrontViewPosition.leftSide:
        print("LeftSide")

        // Center position, rear view is hidden behind front controller
    case FrontViewPosition.left:
        print("Left")
        //Closed
        //0 rotation


        // Right possition, front view is presented right-offseted by rearViewRevealWidth
    case FrontViewPosition.right:
        print("Right")
        //Opened
        //rotated

        // Right most possition, front view is presented right-offseted by rearViewRevealWidth+rearViewRevealOverdraw

    case FrontViewPosition.rightMost:
        print("RightMost")
        // Front controller is removed from view. Animated transitioning from this state will cause the same
        // effect than animating from FrontViewPositionRightMost. Use this instead of FrontViewPositionRightMost when
        // you intent to remove the front controller view from the view hierarchy.

    case FrontViewPosition.rightMostRemoved:
        print("RightMostRemoved")

    }

}

如果要在代码中检查frontViewPosition的状态,请检查frontViewPosition属性

   if (self.revealViewController().frontViewPosition != FrontViewPosition.Left) { 
   // Do something 
   }

如果希望收到有关菜单切换的通知,请在委托中实现以下SWRevealViewControllerDelegate方法。 (您要观察这些变化的地方)

- (void)revealController:(SWRevealViewController *)revealController willMoveToPosition:(FrontViewPosition)position;
- (void)revealController:(SWRevealViewController *)revealController didMoveToPosition:(FrontViewPosition)position;

对于jonkykong / SideMenu

实现UISideMenuNavigationControllerDelegate

func sideMenuDidAppear(menu: UISideMenuNavigationController, animated: Bool) {
    print("SideMenu Appeared! (animated: \(animated))")
}

func sideMenuDidDisappear(menu: UISideMenuNavigationController, animated: Bool) {
    print("SideMenu Disappeared! (animated: \(animated))")
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM