【问题标题】:SWRevealViewController push from subviewSWRevealViewController 从子视图推送
【发布时间】:2015-11-13 22:07:59
【问题描述】:

我有一个 LoginView 并且登录成功后我正在加载 Slideout 菜单视图 (SWRevealViewController)。

我正在使用以下内容加载具有前视图(仪表板)和后视图(滑动条视图)的显示视图控制器!

 AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];

                UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];

                SWRevealViewController *viewController1 = (SWRevealViewController *)[mainStoryboard instantiateViewControllerWithIdentifier:@"next"];

                [appDelegate.window setRootViewController:viewController1];

在后视图中,我们有菜单(约会、化妆师、理发师、定位我和设置)。

在设置中,我们有 3 个选项和 3 个不同的视图控制器。当我从 settingsViewController 推送到 generalViewController 时,它会加载登录视图控制器的方法!

我是用这个来推的!

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{

NSLog(@"%@",[List objectAtIndex:indexPath.row]);

//
if (indexPath.row==0) {

    UIStoryboard * storyboard = self.storyboard;
    generalViewController * detail = [storyboard instantiateViewControllerWithIdentifier:@"General"];
    [self.navigationController pushViewController: detail animated: YES];


}
}

正因为如此,loginViewController 中的所有方法都被调用了!

请帮我解决这个问题。如何从revealViewController的frontViewController推送一个viewController?

提前致谢!

【问题讨论】:

  • loginViewController 的方法不会被self.navigationController pushViewController 调用。您必须从其他地方调用它。

标签: ios objective-c xcode swrevealviewcontroller


【解决方案1】:

按照以下步骤操作: 假设从侧面菜单中,用户选择设置选项,然后在 Settingviewcontroller 的 viewDidLoad 方法中编写以下代码。

同时导入 SWRevealViewcontroller.h *注意 - 侧边栏按钮(三行图像)

//setting side Button Action
    SWRevealViewController *revealVC = self.revealViewController;
    if (revealVC) {
        [sideBarButton addTarget:self.revealViewController action:@selector(revealToggle:) forControlEvents:UIControlEventTouchUpInside];
        [self.view addGestureRecognizer:self.revealViewController.panGestureRecognizer];
    }    

//show Setting View Screen 
        SWRevealViewController *svc = self.revealViewController;
        UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
        UIViewController *homeVC = [storyboard instantiateViewControllerWithIdentifier:@"settingVC"];
        [svc setFrontViewController:homeVC animated:NO];
        [svc revealToggleAnimated:YES];

【讨论】:

  • Shobakar,它不工作,请你指导我!
  • 对于呈现pushview类的动画最好使用自定义代码,或者使用presentedviewcontroller来呈现viewscreen。
【解决方案2】:

也按照以下步骤操作:

  • 将 Login VC 连接到 SWRevealVC 作为 MODAL SEGUE [没有导航]

  • MODAL SEGUE

  • 添加标识符
  • 一旦登录成功,,

    [self performSegueWithIdentifier:@"reveal" sender:self];

【讨论】:

    【解决方案3】:

    请检查您的 viewControllers 属于哪个子类!

    请检查它是否属于 UIViewController 的子类。

    【讨论】:

      猜你喜欢
      • 2015-06-26
      • 2015-09-07
      • 1970-01-01
      • 2014-11-23
      • 1970-01-01
      • 2014-06-30
      • 2017-05-30
      • 1970-01-01
      • 2016-06-20
      相关资源
      最近更新 更多