【问题标题】:SWRevealViewController can't pop view controller to previous oneSWRevealViewController 无法将视图控制器弹出到前一个
【发布时间】:2017-01-03 18:50:23
【问题描述】:

this is the screen shot of storyboard

我正在使用SWRevealViewController 并尝试使用此代码推送其他视图控制器:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"main" bundle:nil];
MyprofileQRsViewController *rootViewController = [storyboard instantiateViewControllerWithIdentifier:@"SBMyprofileDetails"];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:rootViewController];
[navController setViewControllers: @[rootViewController] animated: YES];

[self.revealViewController setFrontViewController:navController];
[self.revealViewController setFrontViewPosition: FrontViewPositionRight animated: YES];

它运行良好,但我无法将该视图控制器弹出到以前的视图控制器.. 我使用了所有基本的 popViewcontrollers 代码仍然无法正常工作。 我只是不知道该怎么做。 请任何机构有诀窍该怎么做请回复.. 提前谢谢....

【问题讨论】:

  • 你能展示你的故事板场景吗
  • 我没有看到任何MyprofileQRsViewController
  • 它和其他视图控制器一样在那里(以相同的顺序)

标签: ios objective-c cocoa-touch storyboard swrevealviewcontroller


【解决方案1】:

请使用 pushFrontViewController: 代替 setFrontViewController:

代码是这样的:

[revealController pushFrontViewController:frontController animated:YES];

可能对你有帮助。

之后,您可以从视图控制器中弹出。

【讨论】:

    【解决方案2】:

    首先,将导航控制器嵌入到您的初始视图控制器中,并将其导航栏从情节提要中隐藏,然后为推送视图控制器编写代码。

    它在推送和弹出视图控制器两种情况下都能完美运行。

    MyprofileQRsViewController *rootViewController = [storyboard instantiateViewControllerWithIdentifier:@"SBMyprofileDetails"];
    [self.navigationController pushViewController:rootViewController  animated:YES];
    

    【讨论】:

      【解决方案3】:

      您可以使用以下代码将您的应用导航到另一个视图控制器

      UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
      // here you need to create storyboard ID of perticular view where you need to navigate your app 
      UIViewController *vc = [mainStoryboard instantiateViewControllerWithIdentifier:@"viewContIdentifire"];
      
      // if use presentViewController this will not enables you to go back to previous view
      [self presentViewController:vc animated:NO completion:nil];
                          **// OR**
      // using pushViewController lets you to go back to the previous view
      [self.navigationController pushViewController:vc animated:YES];
      

      注意:使用其中一种方法presentViewControllerpushViewController 进行导航。


      根据UI 堆栈使用popToRootViewControllerAnimatedpopToRootViewControllerAnimatedpopToRootViewControllerAnimated 方法处理弹回。

      // this takes your app to the root view controller
      [self.navigationController popToRootViewControllerAnimated:YES];
      
      // this will takes you to the previous view loaded in stack
      [self.navigationController popViewControllerAnimated:YES];
      
      // this takes to any view controller, use accordingly 
      [self.navigationController popToViewController:yourViewControllerName animated:YES];
      

      【讨论】:

        猜你喜欢
        • 2019-07-03
        • 2014-06-30
        • 1970-01-01
        • 2014-12-08
        • 2013-07-25
        • 1970-01-01
        • 1970-01-01
        • 2015-04-09
        • 2017-04-22
        相关资源
        最近更新 更多