SWRevealViewController版本2.4.0 segue不工作ios

SWRevealViewController版本2.4.0 segue不工作ios,ios,objective-c,iphone,swrevealviewcontroller,Ios,Objective C,Iphone,Swrevealviewcontroller,在以前版本的SWRevealViewController中,我创建了一个SWRevealViewControllerSegue类的序列,在prepareforSegue中,我使用了以下代码 #pragma mark - Navigation - (void) prepareForSegue: (UIStoryboardSegue *) segue sender: (id) sender { if ( [segue isKindOfClass: [SWRevealViewControlle

在以前版本的SWRevealViewController中,我创建了一个
SWRevealViewControllerSegue类的序列
,在
prepareforSegue
中,我使用了以下代码

#pragma mark - Navigation
- (void) prepareForSegue: (UIStoryboardSegue *) segue sender: (id) sender
{
    if ( [segue isKindOfClass: [SWRevealViewControllerSegue class]] )
    {
        SWRevealViewControllerSegue *swSegue = (SWRevealViewControllerSegue*) segue;
        swSegue.performBlock = ^(SWRevealViewControllerSegue* rvc_segue, UIViewController* svc, UIViewController* dvc) {
            UINavigationController* navController = (UINavigationController*)self.revealViewController.frontViewController;
            [navController setViewControllers: @[dvc] animated: NO ];

            [self.revealViewController setFrontViewPosition: FrontViewPositionLeft animated: YES];
        };

    }
}
在新版本的SWRevealViewController中,没有 SWRevealViewControllerSegue类。相反,有一个名为 SWRevealViewControllerSetSegue。我创建了这个类的segue,但是 导航没有发生

以上代码不能在新版本中使用,因为它已被弃用。我应该在
prepareforsgue
中使用什么


如何执行导航?请帮助。

尝试下面的代码

 UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
    SWRevealViewController *revealVC = (SWRevealViewController *)[storyBoard instantiateViewControllerWithIdentifier:@"revealVCID"];
    [self presentViewController:revealVC animated:YES completion:nil];

Subhash Sharma的评论是正确的。我们不需要在prepareforSegue中为导航编写任何代码

只需创建一个类型为SWRevealViewControllerSeguePushController的序列 并在需要时执行此步骤。它简单有效

你可以用这个

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

    if([segue isKindOfClass:[SWRevealViewControllerSegueSetController class] ]){

        UIViewController *dvc = [segue destinationViewController];                
        UINavigationController *navCtrl = (UINavigationController *) self.revealViewController.frontViewController;        
        [navCtrl setViewControllers:@[dvc] animated:NO];        
        [self.revealViewController setFrontViewPosition:FrontViewPositionLeft animated:YES];

}
这个适合我

UIStoryboard *sb;

if (IS_IPAD) {
    sb = [UIStoryboard storyboardWithName:@"iPad_Main" bundle:nil];
} else {
    sb = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
}


if ([segue isKindOfClass:[SWRevealViewControllerSegueSetController class]]) {

    UINavigationController* navController = (UINavigationController*)self.revealViewController.frontViewController;
    [navController setViewControllers: @[[sb instantiateViewControllerWithIdentifier:@"create"]] animated: NO ];
    [self.revealViewController setFrontViewPosition: FrontViewPositionLeft animated: YES];

}

这是出于示例目的而给出的,但SWLRevalviewcontroller不需要它。您不需要它,只需创建一个自定义segue并从SWReveliveViewController设置类即可。有两个类可供使用
SWRevealViewControllerSegueSetController
SWRevealViewControllerSeguePushController
,它可以工作。cheers happy Coding Then set controller和pushcontroller segue之间的区别是什么?我认为这个问题非常棒,并将尝试对我一直尝试的内容进行更改。我的问题是segue在新版本中不起作用。我创建了一个SWRevealViewControllerSetSegue类的segue,但导航没有发生。我本以为在prepareforsegue方法中应该有一些代码才能使此segue工作。但我的错误是使用了SWRevealViewControllerSetSegue而不是SWRevealViewControllerSeguePushController。这解决了我的问题。如果您知道set controller和pushcontroller之间的区别,请在这里解释。