如何使用RESideMenu或REFrostedViewController跳转到所需的UIViewController

时间:2014-10-17 12:02:52

标签: ios objective-c github uiviewcontroller uinavigationcontroller

这个问题是关于一个名为RESideMenu的非常受欢迎的Github sidemenucontroller项目。

我开始使用REFrostedViewController对应用程序进行编码,但它工作得非常好。

然而,在IOS8的到来之后,我认为RESideMenu看起来更现代,对我来说是更好的选择。

我遇到了一个小问题,现在几天我都无法解决。

所以从leftMenuController,当按下一个菜单项(play)时,我使用这段代码来改变viewcontrollers:

- (void) jumpToPlayVCversion1
{
    UIViewController *viewController = [self.storyboard instantiateViewControllerWithIdentifier:@"playController"];
    UINavigationController * navCon = [[UINavigationController alloc] initWithRootViewController:viewController];
    [self.sideMenuViewController setContentViewController:navCon animated:YES];
    [self.sideMenuViewController hideMenuViewController];
}

它改变了PLAY viewcontoller并进行了很好的转换,但是由于某种原因," playController" s视图向下移动了一个导航栏高度(大约64像素)。

相反,当我使用以下代码更改VC时,&#34; playController&#34;就像它应该是的那样。然而,出现了两个问题:1-没有转换(它只是出现没有动画)和2-应用程序失去了它的能力&#34;从左到右滑动以弹出导航控制器堆栈或打开侧面菜单&#34; < / p>

- (void) jumpToPlayVCversion2
{
    UINavigationController *navigationController = (UINavigationController*)self.sideMenuViewController.contentViewController;
    UIViewController *viewController = [self.storyboard instantiateViewControllerWithIdentifier:@"playController"];
    navigationController.viewControllers = @[viewController];
    [self.sideMenuViewController hideMenuViewController];
}

如果有人可以告诉我填写jumpToPlayVCversion3的方法以便VC不会降低并且过渡将会可用,我将不胜感激。

PS。我正在使用带有故事板的项目。

谢谢,

Aytunc Isseven

1 个答案:

答案 0 :(得分:4)

我在我的项目中试过这个并且效果很好。它隐藏了导航栏,因此playController的视图不会向下移动导航栏高度(大约64像素)。

- (void) jumpToPlayVCversion1
{
UIViewController *viewController = [self.storyboard instantiateViewControllerWithIdentifier:@"playController"];
UINavigationController * navCon = [[UINavigationController alloc] initWithRootViewController:viewController];
[navCon setNavigationBarHidden:YES];
[self.sideMenuViewController setContentViewController:navCon animated:YES];
[self.sideMenuViewController hideMenuViewController];
}