0

我正在使用 ECSliding,但我遇到了这个问题!

在我的项目中有这些文件:

InitViewController (ECSlidingController)

FirstViewController (UIViewController)

SecondViewController (UIViewController)

LeftMenuViewController (UIViewController)

LeftMenuTwoViewController (UIViewController)

我使用 InitView 将我的 FirstView 设置为顶视图。

向右滑动显示 LeftMenuViewController,它有一个按钮,如果按下将 topview 更改为 SecondViewController。我想知道是否可以使用 LeftMenuTwoViewController 作为 SecondView 的 underLeftViewController。我还想要一个将 topView 更改为 FirstView 的 LeftMenuTwo 按钮。

我想要一个带有 underLeftViewController 作为 LeftMenuViewController 的 FirstView,以及一个带有 underLeftViewController 作为 LeftMenuTwoViewController 的 SecondView。每个菜单都有一个按钮,可以将 topView 更改为另一个具有不同 underLeftViewController 的按钮。

我这样做了:

SecondViewController *second =  [self.storyboard
                                  instantiateViewControllerWithIdentifier:@"SecondTop"];

[self.slidingViewController anchorTopViewOffScreenTo:ECRight
                                          animations:nil
                                          onComplete:^{
    self.slidingViewController.topViewController = second;

    [self.slidingViewController resetTopViewWithAnimations:nil
                                                onComplete:^{
        LeftMenuTwoViewController *newUnderLeftVC = [self.storyboard
                                  instantiateViewControllerWithIdentifier:@"LeftTwo"];

        self.slidingViewController.underLeftViewController = newUnderLeftVC;
    }];
}];

但是当我按下按钮时,topView 通过向右滑动开始弹跳动画,但在 TopView 离开屏幕后立即不再返回,underLeftViewController 变为空白。有谁知道为什么?

下载:我的项目

4

1 回答 1

1

将方法更改为:

-(IBAction)openSecond:(id)sender
{
    SecondViewController *second = [self.storyboard instantiateViewControllerWithIdentifier:@"Second"];
    ECSlidingViewController *slideController = self.slidingViewController;

    [slideController anchorTopViewOffScreenTo:ECRight animations:nil onComplete:^{
        slideController.topViewController = second;
        [slideController resetTopViewWithAnimations:nil onComplete:^{

            LeftMenuTwoViewController *newUnderLeftVC = [self.storyboard instantiateViewControllerWithIdentifier:@"LeftTwo"];
            slideController.underLeftViewController = newUnderLeftVC;
        }];
    }];
}

问题是当视图将自身作为顶视图控制器移除时,调用self.slidingViewController不再返回有效实例(它返回 nil)。

于 2013-06-01T14:13:53.863 回答