如何在swift 2.0中的swrevealviewcontroller中了解菜单是否打开

时间:2016-03-12 18:52:20

标签: ios swift2

我在ios中制作了一个应用程序。我使用swrevealviewcontroller进行菜单。当菜单打开或不打开时我需要键盘消失。那么如何识别菜单是否开放?

3 个答案:

答案 0 :(得分:4)

  

Swift 3

  • SWRevealViewControllerDelegate 添加到您的控制器
  • viewDidLoad()

    中将revealViewControllerDelegate设置为self
    self.revealViewController().delegate = self
    
  • 使用( didMoveTo )或在viewController
  • 中使用( willMoveTo )实现此Func
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")

    }

}

答案 1 :(得分:2)

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

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

如果您希望收到有关菜单切换的通知,请在您的代理中实施以下SWRevealViewControllerDelegate方法。 (你想在哪里观察这些变化)

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

答案 2 :(得分:0)

用于 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))")
}