【问题标题】:UINavigationController back to more than one stepUINavigationController 回退不止一步
【发布时间】:2012-06-19 13:11:06
【问题描述】:

是否可以在 UINavigationController 中弹出多个视图控制器?假设我想退后两步。

【问题讨论】:

    标签: ios cocoa-touch uinavigationcontroller


    【解决方案1】:

    是的,你可以通过做类似的事情来实现这一点

    //Your navigation controller
    UINavigationController *nav;
    
    //Get the view controller that is 2 step behind
    UIViewController *controller = [nav.viewControllers objectAtIndex:nav.viewControllers.count - 2];
    
    //Go to that controller
    [nav popToViewController:controller animated:YES];
    

    【讨论】:

      【解决方案2】:

      斯威夫特

      Omar 提出的相同解决方案是:

      // Get the previous Controller.
      let targetController: UIViewController = navigationController!.viewControllers[navigationController!.viewControllers.count - 2]
      
      // And go to that Controller
      navigationController?.popToViewController(targetController, animated: true)
      

      在我的情况下,我需要支持 2 个控制器,因此,我必须采用堆栈中的第 3 个支持。我真正的解决方案是:

      // obtaining origin controller
      let controller: UIViewController = navigationController!.viewControllers[navigationController!.viewControllers.count - 2]
      
      // If was the expected controller (An enroll action)
      if controller is CreateChatViewController {
      
          // I get the previous controller from it, in this case, the 3rd back in stack
          let newControllerTarget = navigationController!.viewControllers[navigationController!.viewControllers.count - 3]
      
          // And finally sends back to desired controller
          navigationController?.popToViewController(newControllerTarget, animated: true)
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-02-09
        • 2012-01-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-24
        • 1970-01-01
        相关资源
        最近更新 更多