2013-08-20 70 views
1

我已經爲我的項目實施了ECSlidingViewController框架。這樣可行。我可以使用左側菜單在View Controller之間切換。
但現在我想通過點擊一個UIButton設置當前視圖/頂視圖:ECSlidingViewController:無法隱藏菜單

NSString *identifier = [NSString stringWithFormat:@"%@", @"newView"]; 

UIViewController *newTopViewController = [self.storyboard instantiateViewControllerWithIdentifier:identifier]; 

[self.slidingViewController anchorTopViewOffScreenTo:ECLeft animations:nil onComplete:^{ 
    CGRect frame = self.slidingViewController.topViewController.view.frame; 
    self.slidingViewController.topViewController = newTopViewController; 
    self.slidingViewController.topViewController.view.frame = frame;    
}]; 

當我點擊這個按鈕後,newView - 的ViewController在頂部,但在左邊的菜單也是可見的。我嘗試瞭如下所示的一切來隱藏菜單:

[self.slidingViewController anchorTopViewTo:ECRight]; 
... 
self.slidingViewController.underRightWidthLayout = ECVariableRevealWidth; 
... 
[self.slidingViewController anchorTopViewTo:ECLeft]; 
... 
[self.slidingViewController anchorTopViewOffScreenTo:ECLeft]; 
... 
self.slidingViewController.underLeftWidthLayout = ECFullWidth; 
... 
[self.slidingViewController resetTopView]; 

如何隱藏左側菜單?

對不起我的英語錯誤,我來自德國。

回答

0

在整個過程中不要繼續使用self.slidingViewController。每次都會對它進行評估,因此當您更改滑動控制器中的視圖控制器時,您可以中斷鏈接。因此,緩存滑動控制器參考和重用:

ECSlidingViewController *slidingViewController = self.slidingViewController; 

[slidingViewController ...]; 
[slidingViewController ...]; 
0

在的onComplete塊應隱藏菜單的末尾調用resetTopView

0

顯示/隱藏SlideViewController

[viewController.slidingViewController anchorTopViewToRightAnimated:YES]; 
    if ([viewController.slidingViewController currentTopViewPosition] == ECSlidingViewControllerTopViewPositionAnchoredRight) { 
     [viewController.slidingViewController resetTopViewAnimated:YES]; 
    }