2

ECSlidingViewControllerを使用しています。

サンプル プロジェクトでは、IBAction
を使用して最初のビューにボタンを追加しました (スライド アウト ナビゲーションを使用せずに) 最初のビューのボタンを 2 番目のビューに移動します。

- (IBAction)btnPressed:(id)sender {
    UIViewController *newTopViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"SecondTop"];
    [self.slidingViewController anchorTopViewOffScreenTo:ECRight animations:nil onComplete:^{
        CGRect frame = self.slidingViewController.topViewController.view.frame;
        self.slidingViewController.topViewController = newTopViewController;
        self.slidingViewController.topViewController.view.frame = frame;
        [self.slidingViewController resetTopView];
    }];
}

このコードでは、ナビゲーション スライド アウト メニューにのみ移動し、2 番目には移動しません。

4

1 に答える 1

7

常に使用しないでくださいself.slidingViewController。これは派生プロパティであり、静的な値ではありません。したがって、最初のビューを2番目のビューに置き換えると、最初のビューはスライドコントローラーを取得できなくなります(参照を壊しました)。したがって、代わりに次のようにします。

- (IBAction)btnPressed:(id)sender {
    ECSlidingViewController *slidingViewController = self.slidingViewController;

    UIViewController *newTopViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"SecondTop"];
    [slidingViewController anchorTopViewOffScreenTo:ECRight animations:nil onComplete:^{
        CGRect frame = slidingViewController.topViewController.view.frame;
        slidingViewController.topViewController = newTopViewController;
        slidingViewController.topViewController.view.frame = frame;
        [slidingViewController resetTopView];
    }];
}
于 2013-06-24T14:30:53.513 に答える